* Update to 0.35
[platform/upstream/dbus.git] / ChangeLog
1 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2
3         * NEWS: Update to 0.35
4
5 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
6
7         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
8         so distcheck doesn't fail
9
10         * glib/examples/Makefile.am: Add example-service.xml and 
11         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
12
13         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
14         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
15
16         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
17         compiler looks in the right places during distcheck
18
19 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
20
21         * glib/example/Makefile.am: Fix a typo which cause make distcheck
22         to fail
23
24 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
25
26         * python/examples/example-service.py,
27         python/examples/example-signal-emitter.py: Fixed up examples
28         for API changes
29
30 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
31
32         * python/__init__.py: Upped to version (0,42,0) because of
33         the API change
34
35 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
36
37         * ChangeLog: fix date in last entry
38
39         * configure.in, bus/system.conf.in: add the ability to configure 
40         the system bus user at compiletime with the --with-dbus-user flag
41         (patch from Kristof Vansant)
42
43 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
44
45         * bus/dispatch.c, test/test-service.c: Add testcase
46         for sending messages to oneself (TODO item).
47
48         * python/service.py (class Object): Swap ordering of bus_name 
49         and object_path parameters to better support inheritance.
50
51         * doc/dbus-tutorial.xml: change Python docs to reflect change
52         in parameter ordering and fix the inheritance section.
53
54         * doc/TODO: remove sending message to oneself TODO item
55
56 2005-07-15  Ross Burton  <ross@openedhand.com>
57
58         * glib/dbus-gproxy.c:
59         Fix a leak when calling methods via the proxy.
60
61 2005-07-15  Colin Walters  <walters@verbum.org>
62
63         * bus/selinux.c (bus_selinux_append_context): Wrap in
64         HAVE_SELINUX.
65
66 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
67
68         * python/_dbus.py (Bus::remove_signal_receiver):
69         don't add a callback to the match if none has been passed in
70         
71         * python/matchrules.py (SignalMatchTree::remove): if the rule
72         being matched does not have a callback treat it as a wildcard
73         fix matching logic
74
75         * doc/dbus-tutorial.xml: Add Python tutorial
76
77 2005-07-14  Colin Walters  <walters@verbum.org>
78
79         * bus/driver.c
80         (bus_driver_handle_get_connection_unix_security_context): New function.
81         (message_handlers): Add.
82
83         * bus/selinux.c (bus_selinux_append_context): New function; appends
84         security context to message.
85
86         * bus/selinux.h: Prototype.
87
88         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
89
90 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
91
92         * bus/activation.c: clean up all tabs to be 8 spaces 
93         (bus_activation_activate_service): make sure we clean up
94         if activation fails
95
96         * bus/dispatch.c: clean up all tabs to be 8 spaces 
97         (check_shell_fail_service_auto_start): New function
98         tests to make sure we get fail properly when trying to auto start a service
99         with a faulty command line
100         (check_shell_service_success_auto_start): New function tests to make sure
101         auto started services get the arguments on the command line
102
103         * test/test-shell-service.c: Added service for testing auto-starting with 
104         command line arguments
105
106         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
107         test/data/valid-service-files/debug-shell-echo-success.service.in:
108         Added service files for testing auto-starting with command line arguments
109
110         * */.cvsignore: added a bunch of generated files to various .cvsignore files
111
112 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
113
114         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
115         
116         * dbus/Makefile.am: added new files to build.
117
118         * bus/activation.c (bus_activation_activate_service): support
119         activation commands with parameters.
120
121         * test/shell-test.c: added test program for the shell parsing
122         code.
123
124 2005-07-13  David Zeuthen  <davidz@redhat.com>
125
126         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
127         64 bit signed and unsigned parameters
128
129 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
130
131         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
132
133         * python/service.py (class Name): renamed BusName to make it clearer
134         what the object is for (a name on the bus)
135
136         * python/examples/example-service.py,
137         python/examples/example-signal-emitter.py: change the Name object to
138         BusName
139
140 2005-07-12  Colin Walters  <walters@verbum.org>
141
142         Patch from Jim Gettys <Jim.Gettys@hp.com>.
143
144         * tools/dbus-launch.c: Include sys/select.h.
145
146 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
147         * python/dbus_bindings.pyx.in: removed
148
149         * python/dbus_bindings.pyx: Added.
150         - Fixed some memleaks (patch from 
151         Sean Meiners <sean.meiners@linspireinc.com>)
152         - Broke out the #include "dbus_h_wrapper.h" and put it in its
153         own pxd file (Pyrex definition)
154         - Broke out glib dependancies into its own pyx module
155         
156         * python/dbus_bindings.pdx: Added.
157         - Defines C class Connection for exporting to other modules
158
159         * python/dbus_glib_bindings.pyx: Added.
160         - New module to handle lowlevel dbus-glib mainloop integration
161
162         * python/glib.py: Added.
163         - Registers the glib mainloop when you import this module
164
165         * python/services.py: Removed (renamed to service.py)
166         
167         * python/service.py: Added.
168         - (class Server): renamed Name
169
170         * python/__init__.py: Bump ro version (0,41,0)
171         -don't import the decorators or service module
172         by default.  These now reside in the dbus.service namespace
173
174         * python/_dbus.py (Bus::__init__): Add code run the main loop 
175         setup function on creation 
176
177         * python/examples/example-service.py,
178         python/examples/example-signal-emitter.py: update examples
179
180         * python/examples/gconf-proxy-service.py,
181         python/examples/gconf-proxy-service2.py: TODO fix these up
182
183         * doc/TODO: Addition
184         - Added a Python Bindings 1.0 section
185         - added "Add match on args or match on details to match rules"
186
187
188 2005-07-12  Colin Walters  <walters@verbum.org>
189
190         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
191         (statemachine-glue.h): 
192         * glib/examples/Makefile.am (example-service-glue.h) 
193         (example-signal-emitter-glue.h): 
194         * glib/Makefile.am (dbus-glib-error-switch.h): 
195         Add libtool --mode=execute so we use the built library instead
196         of any installed one.
197
198 2005-07-11  Colin Walters  <walters@verbum.org>
199
200         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
201         (dbus_g_value_types_init): Remove assertion.
202         (dbus_g_value_get_g_type, dbus_g_value_open)
203         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
204         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
205         functions related to DBusGValue.  Now we marshal/demarshal
206         structures as GValueArray.
207         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
208         structures.
209         (signature_iter_to_g_type_array): Don't call
210         signature_iter_to_g_type_struct.
211         (signature_iter_to_g_type_struct): Delete.
212         (dbus_gvalue_to_signature): Delete.
213         (dbus_gvalue_to_signature): New function with same name as other
214         one; we can convert structures to signatures.
215         (demarshal_valuearray): New function.
216         (get_type_demarshaller): Use it.
217         (demarshal_recurse): Delete.
218         (marshal_proxy): New function.
219         (marshal_map): Warn if we can't determine signature from type.
220         (marshal_collection_ptrarray): Ditto.
221         (marshal_collection_array): Ditto.
222         (get_type_marshaller): Use marshal_valuearray.
223         (marshal_recurse): Delete.
224         (_dbus_gvalue_test): Add some tests.
225
226         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
227         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
228         (dbus_g_value_open, dbus_g_value_iterator_get_value)
229         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
230         (dbus_g_value_free): Remove prototypes.
231
232         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
233         G_TYPE_VALUE_ARRAY.
234
235         * glib/examples/example-service.c:
236         * glib/examples/example-client.c: Implement GetTuple.
237
238         * test/glib/test-dbus-glib.c:
239         * test/glib/test-service-glib.c:
240         * test/glib/test-service-glib.xml: Add structure tests.
241
242 2005-07-10  Colin Walters  <walters@verbum.org>
243
244         * doc/TODO: Knock off some GLib items with this patch.
245
246         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
247         (_dbus_gvalue_signals_error): New functions.
248
249         * glib/dbus-gvalue-utils.h: Prototype them.
250
251         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
252         and change to not output const/retval flags for input args.  All
253         callers updated.
254         (invoke_object_method): Refactor to handle return values.  Add
255         some more comments in various places.  Remove debug g_print.
256
257         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
258
259         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
260         Handle G_TYPE_NONE.
261         (compute_gsignature): New function; refactored from code from
262         compute_marshaller and compute_marshaller_name.  Enhance to
263         handle return values and async ops more cleanly.  Update for
264         async ops returning NONE instead of BOOLEAN.
265         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
266         and output appropriate string.
267         (generate_glue): Handle return value annotation.  Also don't dump
268         constness flag for input arguments.
269
270         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
271         files shared between installed library and utilities.
272         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
273         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
274         binding tool can access gtype utility functions.
275
276         * test/glib/test-service-glib.c: 
277         * test/glib/test-service-glib.xml: 
278         * test/glib/test-dbus-glib.c: Add some tests for return values.
279
280 2005-07-09  Colin Walters  <walters@verbum.org>
281
282         * glib/dbus-gparser.c (parse_annotation): Add annotations to
283         argument if available, not method.
284
285         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
286         (invoke_object_method): First, remove some redundant
287         GValues (object_value, error_value) in favor of working on
288         array directly.  Second, rework constness to be less buggy.
289         Now we iterate directly over the argument metadata instead
290         of parallel iterating over output signature and metadata.
291
292         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
293
294         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
295         annotation on input args.
296         
297 2005-07-09  Colin Walters  <walters@verbum.org>
298
299         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
300         Define.
301
302         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
303         annotation.
304
305         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
306         (method_dir_signature_from_object_info): Handle arg_iterate change.
307         (write_interface): Ditto.
308         (lookup_object_info): Don't barf if format_version is > 0.
309         (invoke_object_method): Handle arg constness.
310
311         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
312         (arg_info_new): Create.
313         (arg_info_unref): Destroy.
314         (arg_info_get_annotations, arg_info_get_annotation) 
315         (arg_info_add_annotation): New functions.
316
317         * glib/dbus-gidl.h: Prototype them.
318
319         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
320         args, disallow them in properties.
321         (parse_annotation): Handle arg annotations.
322
323         * test/glib/test-service-glib.xml: 
324         * test/glib/test-service-glib.c: Update to make some methods
325         const.
326
327 2005-07-08  Colin Walters  <walters@verbum.org>
328
329         * test/glib/test-service-glib.xml: 
330         * test/glib/test-service-glib.c:
331         * test/glib/test-dbus-glib.c: Test a{sv}.
332
333         * glib/examples/statemachine/statemachine.c:
334         * glib/examples/statemachine/statemachine-server.c:
335         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
336         add progress bar, etc.
337
338         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
339         needed anymore due to generic array/map marshalling.
340         (dbus_g_value_types_init): Don't register basic arrays or the
341         string/string hash.
342         (dbus_gtype_from_signature_iter): Don't try to recurse into
343         variants.
344         (dbus_gtype_to_signature): Check collection/map before type
345         metadata.
346         (demarshal_garray_basic): Renamed to demarshal_collection_array.
347         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
348         generic map creation/append functions instead of hash table
349         specifically.
350         (get_type_demarshaller): Handle maps.
351         (demarshal_collection): Dispatch on collection type to either
352         demarshal_collection_ptrarray or demarshal_collection_array.
353         (get_type_marshaller): Handle maps.
354         (marshal_collection): Dispatch collection type to either
355         marshal_collection_ptrarray or marshal_collection_array.
356         (_dbus_gvalue_test): New test.
357
358         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
359         (hash_free_from_gtype): Use it to free GValues.
360         (hashtable_append): New function.
361         (ptrarray_append): Fix prototype.
362         (slist_append): Ditto.
363         (_dbus_gvalue_utils_test): Extend tests.
364
365         * glib/dbus-gtype-specialized.c
366         (dbus_g_type_specialized_init_append): Renamed from
367         dbus_g_type_specialized_collection_init_append.  Remove const from
368         value, since we steal it.
369         (dbus_g_type_specialized_map_append): New function.
370
371         * glib/dbus-gtype-specialized.h: Update prototypes.
372         Add DBusGTypeSpecializedMapAppendFunc.
373
374         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
375         _dbus_gvalue_test.
376         
377         * glib/dbus-gtest.h: Prototype it.
378
379 2005-07-08  Ross Burton  <ross@openedhand.com>
380
381         * dbus/dbus-glib.h:
382         Add DBysGAsyncData for the async bindings.
383
384         * glib/dbus-binding-tool-glib.c:
385         Re-enable the async bindings.
386
387         * test/glib/test-dbus-glib.c:
388         Add a test for the generated async bindings.
389
390 2005-07-08  Colin Walters  <walters@verbum.org>
391
392         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
393         connection concept.
394         
395 2005-07-08  Colin Walters  <walters@verbum.org>
396         
397         * tools/Makefile.am: Kill of print-introspect in favor of using
398         dbus-send --print-reply=literal.
399
400         * test/glib/test-service-glib.xml: 
401         * test/glib/test-service-glib.c (my_object_get_objs): New test
402         for "ao".
403
404         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
405         (main): Test GetObjs.
406
407         * glib/examples/statemachine/Makefile.am:
408         * glib/examples/statemachine/sm-marshal.list:
409         * glib/examples/statemachine/statemachine-client.c:
410         * glib/examples/statemachine/statemachine-server.c:
411         * glib/examples/statemachine/statemachine-server.xml:
412         * glib/examples/statemachine/statemachine.c:
413         * glib/examples/statemachine/statemachine.h:
414         * glib/examples/statemachine/statemachine.xml:
415
416         New example.
417
418         * glib/examples/example-service.c (main): Move invocation
419         of dbus_g_object_type_install_info earlier, to emphasize it
420         should only be done once.
421
422         * glib/examples/example-signal-emitter.c (main): Ditto.
423
424         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
425
426         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
427         (dbus_gvalue_marshal): Update prototypes.
428
429         * glib/dbus-gvalue.c: Update all marshalling functions to take
430         const GValue instead of GValue.
431         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
432         types.
433         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
434         change.
435         (dbus_gtype_to_signature): Handle generic collecitons and maps.
436         Return a newly-allocated string.
437         (demarshal_proxy, demarshal_object_path, demarshal_object)
438         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
439         we get the wrong types from message.
440         (get_type_demarshaller): New function, extracted from
441         dbus_gvalue_demarshal.
442         (demarshal_collection): New function, demarshals generic
443         collection.
444         (dbus_gvalue_demarshal): Just invoke result of
445         get_type_demarshaller.  Throw error if we don't have one.
446         (marshal_garray_basic): Abort on OOM.
447         (get_type_marshaller): New function, extracted from
448         dbus_gvalue_marshal.
449         (collection_marshal_iterator, marshal_collection): New functions;
450         implements generic marshalling for an iteratable specialized
451         collection.
452         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
453
454         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
455         G_TYPE_STRING.
456         (ptrarray_value_from_gvalue): Ditto.
457         (ptrarray_append, ptrarray_free): New functions.
458         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
459         (slist_append, slist_end_append, slist_free): New functions.
460         (dbus_g_type_specialized_builtins_init): Add append fuctions
461         for GPtrArray and GSList.  Register GSList.
462         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
463
464         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
465         New.
466         (dbus_g_type_specialized_collection_init_append)
467         (dbus_g_type_specialized_collection_append)
468         (dbus_g_type_specialized_collection_end_append): Prototype.
469         (DBusGTypeSpecializedCollectionVtable): Add append_func and
470         end_append_func.
471
472         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
473         (dbus_g_type_specialized_collection_append) 
474         (dbus_g_type_specialized_collection_end_append): New functions.
475         (dbus_g_type_map_value_iterate): Take const GValue.
476         (dbus_g_type_collection_value_iterate): Ditto.
477
478         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
479         _dbus_gvalue_utils_test.
480         
481         * glib/dbus-gtest.h: Prototype it.
482
483         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
484         using uninitialized owner_list.
485         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
486         public API.
487         (dbus_g_proxy_end_call_internal): Update to use error set
488         from dbus_gvalue_demarshal instead of setting it here.
489         (dbus_g_proxy_begin_call): Move return_if_fail here.
490
491         * glib/dbus-gobject.c (write_interface): Update for
492         dbus_gtype_to_signature returning new string.
493
494         * configure.in: Add glib/examples/statemachine.
495
496 2005-07-08  Joe Shaw  <joeshaw@novell.com>
497
498         * configure.in: Add a configure option, --with-console-auth-dir
499         
500         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
501         new setting.  Patch from Kay Sievers.
502
503 2005-07-06  Colin Walters  <walters@verbum.org>
504
505         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
506         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
507         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
508         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
509         Delete in favor of dbus_g_proxy_begin_call and
510         dbus_g_proxy_cancel_call.
511         (DBusGProxyCall, DBusGProxyCallNotify): New.
512         (dbus_g_proxy_begin_call): Change prototype to take callback, user
513         data, and destroy function.  This replaces
514         dbus_g_pending_call_set_notify.
515         (dbus_g_proxy_cancel_call): Prototype.
516         (DBusGAsyncData): Delete, shouldn't be needed anymore.
517
518         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
519         pending_calls map.
520         (struct _DBusGProxyManager): Add bus_proxy member, which is an
521         internal proxy for calls to the bus. Remove
522         pending_nameowner_calls, now the internal proxy keeps track.
523         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
524         pending_nameowner_calls.
525         (got_name_owner_cb): Update prototype, and use
526         dbus_g_proxy_end_call.
527         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
528         (dbus_g_proxy_manager_register): Delete directly libdbus code in
529         favor of using internal proxy.
530         (dbus_g_proxy_manager_unregister): Update to use
531         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
532         (dbus_g_proxy_init): Initialize pending calls map.
533         (dbus_g_proxy_constructor): New.
534         (dbus_g_proxy_class_init): Add get/set property functions,
535         constructor, and add NAME, PATH, and INTERFACE properties.
536         (cancel_pending_call): New function.
537         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
538         cancel them.
539         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
540         (GPendingNotifyClosure): New structure.
541         (d_pending_call_notify, d_pending_call_free): Moved here from
542         dbus-glib.c.
543         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
544         ordering.
545         (manager_begin_bus_call): New internal function for talking to
546         internal bus proxy.
547         (dbus_g_proxy_new): Construct object using GObjet properties.
548         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
549         Create closure of same, and insert call into map of pending calls.
550         (dbus_g_proxy_end_call_internal): Take call id instead of pending
551         call.  Look up pending call in current set.  Remove it when we've
552         completed.
553         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
554         (dbus_g_proxy_begin_call): Change API to take callback, user data,
555         and destroy function directly.
556         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
557         (dbus_g_proxy_call): Invoke with NULL callback.
558         (dbus_g_proxy_cancel_call): New function, replaces
559         dbus_g_pending_call_cancel.
560
561         * glib/dbus-gparser.c (validate_signature): Fix call to
562         dbus_set_g_error.
563
564         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
565         New quark for attaching metadata to GType.
566         (info_hash): Delete.
567         (lookup_object_info): Look up using quark.
568         (dbus_g_object_type_install_info): Check that a type is classed,
569         not that it's an object.  Also just install type data using quark
570         instead of using global hash.
571
572         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
573         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
574         (GPendingNotifyClosure): Delete.
575         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
576         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
577
578         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
579         client method generation until we can fix it...
580         
581         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
582         (load_from_service_thread_func): Ditto.
583
584         * tools/dbus-names-model.c (struct NamesModel): Hold
585         DBusGProxyCall.
586         (have_names_notify): Update prototype, use
587         dbus_g_proxy_cancel_call.
588         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
589
590         * tools/dbus-monitor.c (filter_func): Update for print_message
591         API change.
592
593         * test/glib/test-dbus-glib.c: Add more tests for async
594         invocations.  Update many begin_call/end_call pairs to just use
595         dbus_g_proxy_call.
596
597         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
598         allows us to dump print-introspect.c.
599
600         * tools/dbus-print-message.h (print_message): Add literal argument
601         to print_message which is intended to allow printing arguments without
602         metadata like "string=".
603
604         * tools/dbus-print-message.c (print_iter): Add literal argument.
605         (print_message): Allow printing string messages literally.
606
607 2005-07-05  Colin Walters  <walters@verbum.org>
608
609         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
610         Remove value refcount leak, original patch from Jorn Baayen
611         <jorn@openedhand.com>.  Also remove useless extra value in favor
612         of prepending to value array directly.
613
614 2005-07-02  Colin Walters  <walters@verbum.org>
615
616         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
617
618 2005-07-01  Colin Walters  <walters@verbum.org>
619
620         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
621         
622         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
623         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
624         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
625         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
626
627 2005-06-30  Colin Walters  <walters@verbum.org>
628
629         * test/glib/test-dbus-glib.c:
630         * test/glib/test-service-glib.c:
631         * test/glib/test-service-glib.xml: Update tests for new error
632         setting bits, also add async tests (patch from Ross Burton).
633
634         * test/glib/Makefile.am (test_service_glib_LDADD): Add
635         DBUS_GLIB_THREADS_LIBS.
636
637         * glib/dbus-gproxy.c (get_name_owner)
638         (dbus_g_pending_call_end_valist): Ditto.
639
640         * glib/dbus-gobject.c (error_metadata): New mapping from GError
641         domain (GQuark) to DBusGErrorInfo.  
642         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
643         quark in error_metadata.  Take message interface as default
644         error message interface.
645         (gerror_to_dbus_error_message): Pass message interface.
646         (dbus_set_g_error): Resurrected.
647         (dbus_g_error_info_free): New function.
648         (dbus_g_object_type_install_info): Use g_type_class_ref instead
649         of _peek to actually create the object class if it hasn't been
650         created yet.
651         (dbus_g_error_domain_register): New function.
652
653         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
654
655         * glib/dbus-gparser.c (validate_signature): Ditto.
656
657         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
658         (dbus_g_error_domain_register): Prototype.
659
660         * glib/dbus-glib.c (dbus_g_error_set): Delete.
661         Update tests.
662
663 2005-06-29  Colin Walters  <walters@verbum.org>
664
665         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
666         DBUS_TYPE_G_OBJECT_PATH.
667
668         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
669         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
670         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
671         (dbus_g_object_path_get_g_type): New function.
672         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
673         to DBUS_TYPE_G_OBJECT_PATH by default.
674         (demarshal_proxy): Remove unused name variable.
675         (demarshal_object_path, marshal_object_path): New functions.
676         (demarshal_proxy_array, marshal_proxy_array): Delete.
677         
678         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
679         DBUS_TYPE_G_OBJECT_PATH to char *.
680         (dbus_g_type_get_lookup_function): Map builtin
681         DBUS_TYPE_G_OBJECT_PATH.
682
683         * test/glib/test-dbus-glib.c
684         * test/glib/test-service-glib.c (my_object_objpath): 
685         Adapt tests to new object path marshalling.
686
687 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
688
689         * configure.in: force check for Python >= 2.4
690
691 2005-06-29  Colin Walters  <walters@verbum.org>
692         
693         Patch from Ross Burton <ross@openedhand.com>
694         
695         * glib/dbus-gobject.c (invoke_object_method): Unset object
696         value in all cases, not only in async case.
697
698 2005-06-29  Colin Walters  <walters@verbum.org>
699
700         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
701         name_call for keeping track of any outgoing GetNameOwner call.
702         Also add for_owner and associated.
703         (struct _DBusGProxyManager): Add owner_names, which is hash table
704         that maps a base name to a list of names it owns (that we're
705         interested in).  Add pending_nameowner_calls which is a list of
706         all outstanding GetNameOwner; avoids us having to iterate over
707         every proxy.  Add unassociated_proxies which keeps track of name
708         proxies with no associated name owner.
709         (dbus_g_proxy_manager_unref): Destroy owner_names.
710         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
711         name refcounts.
712         (find_name_in_info, name_owner_foreach)
713         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
714         (dbus_g_proxy_manager_monitor_name_owner)
715         (dbus_g_proxy_manager_unmonitor_name_owner)
716         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
717         New functions; they manipulate the owner_names mapping.
718         (got_name_owner_cb): New function.
719         (get_name_owner): New function, extracted from
720         dbus_g_proxy_new_for_name_owner.
721         (dbus_g_proxy_manager_register): For now we need to keep track of
722         all NameOwnerChanged.  Also if the proxy is for a name, if we
723         don't already know the name owner, queue a new GetNameOwner
724         request and add it to our list of unassociated proxies.  Otherwise
725         inc the refcount.
726         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
727         cancel any pending GetNameOwner call, etc.
728         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
729         the owner_names mapping to look up the current names for the
730         signal source, and dispatch to any proxies for that name.
731         (dbus_g_proxy_new): Initialize new members.
732         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
733         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
734         (dbus_g_pending_call_end_valist): New function, extracted from
735         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
736         but want to use the GLib infrastructure.  Also note how many
737         arguments in reply were over.
738         (dbus_g_pending_call_end): New function, just call
739         dbus_g_pending_call_end_valist.
740         (dbus_g_proxy_end_call_internal): Just call
741         dbus_g_pending_call_end_valist.
742
743         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
744         of builtin marshaller for STRING_STRING_STRING.
745
746         * test/glib/test-dbus-glib.c: 
747         * test/glib/test-service-glib.c:
748         * test/glib/test-service-glib.xml:
749         Extend tests to cover name proxies, destruction of owner proxies,
750         etc.
751         
752         * glib/examples/example-signal-recipient.c
753         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
754         
755         * tools/dbus-send.c (main): Print D-BUS error name in addition
756         to message.
757
758 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
759
760         * python/dbus_bindings.pyx.in (cunregister_function_handler,
761         cmessage_function_handler): Patch from 
762         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
763         by using the Py_GILState_Ensure/Release to synchronize with the
764         python runtime.
765         
766 2005-06-28  Ray Strode  <rstrode@redhat.com>
767
768         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
769         babysitter helper process on last unref, bug #2813.
770
771 2005-06-27  Colin Walters  <walters@verbum.org>
772
773         * test/glib/test-dbus-glib.c: 
774         * test/glib/test-service-glib.c:
775         * test/glib/test-service-glib.xml:
776         Test hash table signal emitting.
777
778         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
779         types to their fundamental basis types, since this is what
780         marshallers operate on.  Also add an entry for VOID__BOXED.
781         (dbus_g_object_register_marshaller_array): Convert to fundamental.
782
783 2005-06-26  Havoc Pennington  <hp@redhat.com>
784
785         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
786         from Don Park
787
788 2005-06-26  Colin Walters  <walters@verbum.org>
789
790         * glib/dbus-glib.c (dbus_set_g_error): Delete.
791         (dbus_g_error_set): New public function from its ashes; used by
792         both service-side method implementation and GLib bindings
793         internals.
794         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
795         (_dbus_glib_test): Add some tests.
796
797         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
798
799         * test/glib/test-service-glib.c (my_object_throw_error): Use
800         dbus_g_error_set.
801
802         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
803         errors thrown by dbus_g_error_set.
804
805         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
806
807         * glib/dbus-gparser.c (validate_signature): Ditto.
808
809         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
810         (dbus_g_proxy_end_call_internal): Ditto.
811
812         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
813         converts DBUS_ERROR_x to DBUS_GERROR_x.
814         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
815
816         * doc/TODO: Remove error TODO.
817
818         * doc/dbus-tutorial.xml: Update with documentation about error
819         handling.
820
821         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
822         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
823         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
824
825 2005-06-22  Colin Walters  <walters@verbum.org>
826         
827         Patch from Ross Burton <ross@openedhand.com>
828
829         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
830
831 2005-06-20  Colin Walters  <walters@verbum.org>
832
833         * configure.in: Add glib/examples.
834
835         * glib/Makefile.am: Add examples/
836
837         * glib/examples/.cvsignore
838         * glib/examples/Makefile.am
839         * glib/examples/example-client.c
840         * glib/examples/example-service.c
841         * glib/examples/example-service.xml
842         * glib/examples/example-signal-emitter.c
843         * glib/examples/example-signal-emitter.xml
844         * glib/examples/example-signal-recipient.c:
845         New files; GLib binding examples, ported from
846         python/examples.
847
848 2005-06-20  Colin Walters  <walters@verbum.org>
849
850         * dbus/dbus-glib.h: 
851         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
852         dbus_g_proxy_call.
853
854         * glib/dbus-binding-tool-glib.c: 
855         * doc/dbus-tutorial.xml: 
856         * test/glib/test-dbus-glib.c: Update for rename.
857         
858 2005-06-20  Colin Walters  <walters@verbum.org>
859
860         Patch suggested by Ross Burton <ross@openedhand.com>
861
862         * glib/dbus-gobject.c (export_signals): Free signal name.
863         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
864         memory leak.  Add a bit of documentation.
865         (dbus_g_method_return_error): Free context, and note we do
866         so.
867
868 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
869
870         * dbus/dbus-glib.h:
871         * glib/dbus-gobject.c:
872         * glib/dbus-gproxy.c:
873         * glib/dbus-gvalue.c: Predeclare structs as 
874         typedef struct _Something Something instead of 
875         typedef struct Something Something, so we can 
876         redeclare the prototypes. Other GNOME libraries 
877         do this already.
878
879 2005-06-17  Colin Walters  <walters@verbum.org>
880
881         * tools/dbus-names-model.c (have_names_notify): Fix call
882         to dbus_g_proxy_end_call.
883         
884 2005-06-17  Colin Walters  <walters@verbum.org>
885
886         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
887         spew warnings if we get malformed remote signals.
888
889         * glib/dbus-gobject.c (propsig_iterate): New function.
890         (lookup_object_info): New function, extracted from
891         lookup_object_and_method.
892         (introspect_properties, introspect_signals): Delete; these
893         are merged into write_interface.
894         (write_interface): Write out signals and properties here;
895         dump the org.gtk.object stuff and use the interface given
896         in the introspection data blob.  Also fix up property XML.
897         (lookup_values): New function.
898         (introspect_interfaces): Gather a mapping from interface to a
899         list of its methods, signals, and properties, then write out
900         each interface.
901         (lookup_object_and_method): Use lookup_object_info.
902         (struct DBusGSignalClosure): Add interface.
903         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
904         we can just use the constant data.
905         (dbus_g_signal_closure_finalize): Don't free signal name.
906         (signal_emitter_marshaller): Use interface from signal closure.
907         (export_signals): Only export signals mentioned in introspection
908         blob.
909         (dbus_g_connection_register_g_object): Warn if we have no
910         introspection data for an object.
911         (funcsig_equal): Remove unused variable.
912         (dbus_g_object_register_marshaller): Take varargs instead of
913         list.
914         (dbus_g_object_register_marshaller_array): New function,
915         extracted from old dbus_g_object_register_marshaller.
916
917         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
918         signals and property data.
919         (write_quoted_string): New function, extracted from generate_glue.
920         (generate_glue): Write signals and properties to introspection
921         blob.
922
923         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
924         exported_signals and exported_properties.
925         (dbus_g_object_register_marshaller): Update prototype.
926         (dbus_g_object_register_marshaller_array): Prototype.
927         
928         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
929
930         * test/glib/test-service-glib.c: Add new test signals and method
931         to emit them.
932
933         * test/glib/test-service-glib.xml: Add some test signals.
934
935         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
936         and my-object-marshal.h
937         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
938         my-object-marshal.c.
939         (my-object-marshal.c, my-object-marshal.h): Implement.
940
941         * test/glib/.cvsignore: Update.
942
943         * doc/TODO: Remove two GLib TODO items fixed by this
944         patch.
945
946 2005-06-16  Colin Walters  <walters@verbum.org>
947
948         * doc/TODO: Update for GLib bindings.
949         
950 2005-06-16  Colin Walters  <walters@verbum.org>
951
952         * glib/dbus-binding-tool-glib.c:
953         * glib/dbus-gobject.c:
954         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
955         from Ross Burton, for his GLib bindings work.
956
957 2005-06-16  Colin Walters  <walters@verbum.org>
958
959         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
960         to iterate instead of walking to G_TYPE_INVALID.
961
962         Patch based on a patch from Ryan Gammon.
963
964 2005-06-16  Colin Walters  <walters@verbum.org>
965
966         * bus/bus.c (bus_context_new): Set parser to NULL
967         after we unref it (Patch from Chris Boscolo, #2174).
968         
969 2005-06-16  Colin Walters  <walters@verbum.org>
970
971         * python/dbus_bindings.pyx.in: Import size_t,
972         __int64_t, __uint64_t, and __signed.
973
974         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
975         Define cmsg struct, output it.
976         (_dbus_read_credentials_unix_socket):
977         Use cmsg struct.
978         
979         Patch from Joe Markus Clarke for FreeBSD support.
980         
981 2005-06-16  Colin Walters  <walters@verbum.org>
982
983         * tools/dbus-send.c (append_array): Use strtok.
984         (append_dict): New function.
985         (type_from_name): New function, extracted from main.
986         (main): Handle sending dicts.
987
988         * tools/dbus-print-message.c (print_iter): Print dict
989         entries.
990         
991 2005-06-16  Colin Walters  <walters@verbum.org>
992
993         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
994         values as the empty string (#2948).
995         
996 2005-06-16  Colin Walters  <walters@verbum.org>
997
998         * dbus/Makefile.am:
999         * mono/doc/Makefile.am:
1000         * test/glib/Makefile.am:
1001
1002         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
1003
1004 2005-06-16  Colin Walters  <walters@verbum.org>
1005
1006         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
1007         header byte order from expected byte order (Patch from Chris Wilson, #3475).
1008
1009         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
1010         Increment pointer after swapping fixed array.  Add assertion
1011         for array length.
1012                 
1013 2005-06-15  Colin Walters  <walters@verbum.org>
1014
1015         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
1016         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
1017         
1018 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1019
1020         * NEWS: Update to 0.34
1021
1022 2005-06-15  David Zeuthen  <davidz@redhat.com>
1023
1024         * configure.in (LT_CURRENT): Revert back to 1 as the library
1025         hasn't changed and we've certainly not committed to protocol
1026         stability yet.  All this does is to break ABI. See commit note
1027         from hp@redhat.com 2005-05-05 for details.
1028         
1029 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1030
1031         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
1032         (_dbus_connection_run_builtin_filters): New method
1033         (dbus_connection_dispatch): Run the builtin filters which in turn
1034         runs the peer filter which handles Ping messages.
1035
1036         * doc/TODO: 
1037          - Ping isn't handled: This patch fixes it
1038          
1039          - Add a test case for the Ping message: added TODO item
1040
1041 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1042
1043         * dbus/dbus-message.c:
1044         (dbus_message_has_path): New method
1045         (dbus_message_has_interface): New method
1046         (dbus_message_has_member): New method
1047
1048         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
1049         New method
1050
1051         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
1052         the keyring directory is private to the user
1053
1054         * doc/TODO:
1055          - The convenience functions in dbus-bus.h should perhaps have
1056          the signatures that they would have if they were autogenerated
1057          stubs. e.g. the acquire service function. We should also evaluate
1058          which of these functions to include, in light of the fact that
1059          GLib/Qt native stubs will probably also exist.: Punted
1060
1061          - add dbus_message_has_path(), maybe has_member/interface:
1062          fixed in this patch
1063
1064          - in dbus-keyring.c, enforce that the keyring dir is not
1065          world readable/writable: Fixed in this patch
1066
1067 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1068
1069         * dbus/dbus-marshal-validate.h: Added a new validation
1070         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
1071         out of memory errors when validating signitures
1072
1073         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
1074         in places where we previously used DBUS_VALID and a FALSE return 
1075         value to indicate OOM
1076         
1077         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
1078         Use a stack to track the number of elements inside containers.  The 
1079         stack values are then used to validate that dict entries have only two
1080         elements within them.
1081         (validate_body_helper): check the reason for failure when validating
1082         varients
1083         
1084         * dbus/dbus-message.c (load_message): use 
1085         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
1086         DBUS_VALID and a FALSE return value to indicate OOM
1087
1088         * doc/TODO: remove "- validate dict entry number of fields" as this
1089         patch fixes it
1090
1091 2005-06-14  David Zeuthen  <davidz@redhat.com>
1092
1093         * bus/bus.c (process_config_every_time): Drop existing conf-dir
1094         watches (if applicable) and add new watches
1095
1096         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
1097         (main): Setup SIGIO signal handler if using D_NOTIFY
1098
1099         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
1100
1101         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
1102         (merge_included): Also merge conf_dirs list
1103         (bus_config_parser_unref): Clear conf_dirs list
1104         (include_dir): Add directory to conf_dirs list
1105         (bus_config_parser_get_conf_dirs): New function
1106
1107         * bus/dir-watch.[ch]: New files
1108
1109         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
1110
1111         * configure.in: Add checks for D_NOTIFY on Linux
1112
1113 2005-06-14  Colin Walters  <walters@verbum.org>
1114
1115         * glib/dbus-binding-tool-glib.c:
1116         * glib/dbus-gobject.c:
1117         * glib/dbus-gvalue.c: Fix indentation and brace style.
1118         
1119 2005-06-14  Ross Burton <ross@openedhand.com>.
1120
1121         * glib/dbus-glib.h: Make DBusGMethodInvocation
1122         a private structure.  Rearrange prototypes a bit.
1123         
1124         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
1125         documentation for first_arg_type.
1126         
1127         * glib/dbus-gobject.c: Move DBusGMethodInvocation
1128         here, add documentation.  Move dbus_g_method_return
1129         and dbus_g_method_return_error into public API
1130         section.
1131
1132 2005-06-14  Colin Walters  <walters@verbum.org>
1133
1134         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
1135         Add missing return statements, noticed by Ross Burton.
1136         
1137 2005-06-13  Ross Burton <ross@openedhand.com>.
1138
1139         * glib/dbus-gobject.c: Handle errors on message
1140         demarshalling by sending error message back.
1141         * glib/dbus-gvalue.c: Initialize return variables.
1142
1143 2005-06-13  Colin Walters  <walters@verbum.org>
1144
1145         * glib/Makefile.am: Fix thinko in last patch.
1146
1147 2005-06-13  Colin Walters  <walters@verbum.org>
1148
1149         * glib/Makefile.am: Move dbus-gtype-specialized.c
1150         and dbus-gtype-specialized.h into a _HEADERS variable,
1151         install them.
1152
1153 2005-06-12  Colin Walters  <walters@verbum.org>
1154
1155         Async signals and various bugfixes and testing by
1156         Ross Burton <ross@openedhand.com>.
1157
1158         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
1159         (dbus_gvalue_genmarshal_name_from_type)
1160         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
1161         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
1162         (dbus_g_value_types_init, dbus_gtype_from_signature)
1163         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
1164         (dbus_gtypes_from_arg_signature): New function prototypes.
1165         (dbus_gvalue_demarshal): Take context and error arguments.
1166         (dbus_gvalue_demarshal_variant): New function.
1167         (dbus_gvalue_demarshal_message): New function.
1168         (dbus_gvalue_store): Delete.
1169
1170         * glib/dbus-gvalue.c:
1171
1172         File has been almost entirely rewritten; now we special-case
1173         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
1174         hash tables correctly, etc.  Full support for recursive values
1175         is not yet complete.
1176
1177         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
1178         argument of signal to G_TYPE_POINTER since we now pass a
1179         structure.
1180         (lookup_g_marshaller): Delete in favor of
1181         _dbus_gobject_lookup_marshaller.
1182         (marshal_dbus_message_to_g_marshaller): Use
1183         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
1184         to handle remote signal callbacks.
1185         (dbus_g_proxy_new_from_proxy): New function; creates a new
1186         DBusGProxy by copying an existing one.
1187         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
1188         (dbus_g_proxy_get_path): New functions.
1189         (dbus_g_proxy_marshal_args_to_message): New function;
1190         factored out of existing code.
1191         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
1192         from a varargs array.
1193         (dbus_g_proxy_begin_call_internal): New function.
1194         (dbus_g_proxy_end_call_internal): New function.
1195         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
1196         as arguments; simply invoke dbus_g_proxy_begin_call_internal
1197         after collecting args into value array.
1198         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
1199         invoke dbus_g_proxy_end_call_internal.
1200         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
1201         end_call_internal.
1202         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
1203         types.
1204         (array_free_all): New function.
1205         (dbus_g_proxy_add_signal): Take GTypes.
1206
1207         * glib/dbus-gobject.h:
1208         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1209         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
1210         Prototype.
1211
1212         * glib/dbus-gobject.c: Add a global marshal_table hash which
1213         stores mappings from type signatures to marshallers.  Change lots
1214         of invocations of dbus_gtype_to_dbus_type to
1215         dbus_gtype_to_signature.
1216         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1217         (introspect_signals): Fix test for query.return_type.
1218         (set_object_property): Update invocation of dbus_gvalue_demarshal.
1219         (invoke_object_method): Many changes.  Handle asynchronous
1220         invocations.  Convert arguments with
1221         dbus_gvalue_demarshal_message.  Handle errors.  Use
1222         DBusSignatureIter instead of strlen on args. Handle all arguments
1223         generically.  Special-case variants.
1224         (dbus_g_method_return, dbus_g_method_return_error): New function.
1225         (DBusGSignalClosure): New structure, closes over signal
1226         information.
1227         (dbus_g_signal_closure_new): New function.
1228         (dbus_g_signal_closure_finalize): New function.
1229         (signal_emitter_marshaller): New function; is special marshaller
1230         which emits signals on bus.
1231         (export_signals): New function; introspects object signals and
1232         connects to them.
1233         (dbus_g_object_type_install_info): Take GType instead of
1234         GObjectClass.
1235         (dbus_g_connection_register_g_object): Invoke export_signals.
1236         (dbus_g_connection_lookup_g_object): New function.
1237         (DBusGFuncSignature) New structure; used for mapping type
1238         signatures to marshallers.
1239         (funcsig_hash): New function; hashes DBusGFuncSignature.
1240         (funcsig_equal): New function; compares DBusGFuncSignature.
1241         (_dbus_gobject_lookup_marshaller): New function.
1242         (dbus_g_object_register_marshaller): New function; used to
1243         register a marshaller at runtime for a particular signature.
1244
1245         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
1246
1247         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
1248         which notes a server method implementation should be
1249         asynchronous.
1250
1251         * glib/dbus-binding-tool-glib.c
1252         (dbus_binding_tool_output_glib_server): Call
1253         dbus_g_value_types_init.
1254         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
1255         variants specially.
1256         (dbus_g_type_get_lookup_function): Turn GType into an invocation
1257         of a lookup function.
1258         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
1259         (write_untyped_out_args): New method; write output arguments.
1260         (write_formal_declarations_for_direction): Function for
1261         writing prototypes.
1262         (write_formal_parameters_for_direction): Function for
1263         writing implementations.
1264         (write_typed_args_for_direction): Function for writing
1265         arguments prefixed with GTypes.
1266         (write_async_method_client): Write out async version
1267         of method.
1268
1269         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
1270         (dbus_g_type_get_marshal_name): Move mapping from GType
1271         to marshal name into here.
1272         (dbus_g_type_get_c_name): Move into here.
1273         (compute_marshaller): Convert signature to type with
1274         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
1275         (compute_marshaller_name): Ditto.
1276         (compute_marshaller): Handle async signal annotations.
1277         (gather_marshallers): Return if we don't have a known
1278         prefix.
1279         (generate_glue): Collect introspection blob here, and
1280         write all of the blob at the end.  This allows an object
1281         with multiple interfaces to work.
1282         Mark async methods in introspection blob.
1283
1284         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
1285         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
1286         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
1287
1288         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
1289         avoids people accidentally using DBUS_TYPE_* which should
1290         not be necessary anymore.
1291         Do include dbus-gtype-specialized.h, which are utilities
1292         for GLib container types.
1293         Add various #defines for types such as
1294         DBUS_TYPE_G_BOOLEAN_ARRAY.
1295         (DBusGValueIterator, DBusGValue): Define, not fully used
1296         yet.
1297         (dbus_g_value_get_g_type): Type for recursive value.
1298         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1299         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1300         (dbus_g_value_free): Prototypes.
1301         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
1302         (dbus_g_proxy_set_interface): Prototype.
1303         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
1304         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
1305         types.
1306         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
1307         Accessors.
1308         (DBusGAsyncData, DBusGMethodInvocation): Structures for
1309         doing async invocations.
1310         (dbus_g_method_return, dbus_g_method_return_error):
1311         Prototypes.
1312         * doc/dbus-tutorial.xml: Update GLib section.
1313         
1314         * tools/dbus-viewer.c (load_child_nodes): Update
1315         for new invocation type of dbus_g_proxy_end_call.
1316         (load_from_service_thread_func): Ditto.
1317
1318         * tools/print-introspect.c (main): Ditto.
1319
1320         * tools/dbus-names-model.c (have_names_notify)
1321         (names_model_reload, names_model_set_connection)
1322         Use GTypes.
1323
1324         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
1325         needed since Python bindings use GLib bindings.
1326
1327         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
1328         Add --prefix argument.
1329
1330         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
1331         unneeded --ignore-unsupported arg.
1332         
1333         * test/glib/test-service-glib.c: 
1334         * test/glib/test-service-glib.xml:
1335         * test/glib/test-dbus-glib.c: Add many more tests.
1336
1337 2005-06-06  David Zeuthen  <davidz@redhat.com>
1338
1339         * doc/TODO: Add item about need to remove deprecated functions.
1340
1341         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
1342
1343         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
1344         to repair the ABI which was broken with the last commit.
1345
1346 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
1347
1348         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
1349         (dbus_connection_disconnect): renamed to dbus_connection_close 
1350         for API symmetry with dbus_connection_open
1351         (_dbus_connection_open_internal): 
1352         s/dbus_connection_disconnect/dbus_connection_close
1353
1354         * dbus/dbus-bus.c (dbus_bus_get):
1355         s/dbus_connection_disconnect/dbus_connection_close
1356
1357         * bus/connection.c (bus_connections_unref, 
1358         bus_connections_setup_connection, bus_connections_expire_incomplete):
1359         s/dbus_connection_disconnect/dbus_connection_close
1360
1361         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
1362         kill_client_connection_unchecked, check_hello_connection):
1363         s/dbus_connection_disconnect/dbus_connection_close
1364
1365         * bus/bus.c (new_connection_callback):
1366         s/dbus_connection_disconnect/dbus_connection_close
1367
1368         * tools/dbus-send.c (main):
1369         s/dbus_connection_disconnect/dbus_connection_close
1370
1371         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
1372         s/dbus_connection_disconnect/dbus_connection_close
1373         
1374         * test/test-service.c (path_message_func, filter_func):
1375         s/dbus_connection_disconnect/dbus_connection_close
1376         
1377         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
1378         
1379 2005-05-25  Colin Walters  <walters@verbum.org>
1380
1381         * dbus/dbus-protocol.h: Move various bus service #defines such
1382           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
1383           dbus/dbus-shared.h.
1384         * dbus/dbus-shared.h: Various defines moved here.
1385         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
1386
1387 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
1388
1389         * python/__init__.py: Python bindings deserve a minor version
1390         update.  Upped to (0, 40, 2)
1391
1392 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
1393
1394         * python/decorators.py: add explicitly_pass_message decorator
1395         for passing in the dbus message as keyword for edge case signal
1396         handling
1397
1398         * python/matchrules.py (SignalMatchRule.__repr__): fix output
1399         to conform with what dbus expects for match rules
1400         (SignalMatchRule.execute): add the dbus message as a keyword
1401         if the signal handler has requested it
1402
1403         * python/examples/example/signal-recipient.py: added some more
1404         examples on how to hook up to signals
1405
1406 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
1407
1408         * python/decorators.py: import dbus_bindings
1409
1410         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
1411         SignalMatchNode): new classes that implement wildcard signal
1412         callback matching using a tree lookup. Heavily modified from a
1413         patch sent by Celso Pinto (fd.o bug #3241)
1414
1415         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
1416         use new match classes to handle signals.
1417
1418 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
1419         
1420         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
1421
1422 2005-05-18  Havoc Pennington  <hp@redhat.com>
1423
1424         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
1425         gettext. Not really worth requiring yet perhaps, but any
1426         production quality 1.0 would require it so we should go ahead and
1427         get things set up. We do have a couple token calls to
1428         bindtextdomain in the code already.
1429
1430 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
1431
1432         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
1433         when using recursive g_main_loops
1434
1435         * python/_dbus.py (class Bus): add the ProxyObjectClass
1436         alias for ProxyObject to make it easier for the Twisted 
1437         networking framework to integrate dbus.
1438
1439         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
1440         alias for ProxyMethod to make it easier for the Twisted 
1441         networking framework to integrate dbus. 
1442
1443 2005-05-11  Ross Burton  <ross@openedhand.com>
1444
1445         * glib/dbus-glib-tool.c: Add --prefix argument.
1446         * glib/dbus-binding-tool-glib.h: Add prefix argument.
1447         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
1448         Add prefix argument.
1449         (generate_glue): Pass prefix argument down.
1450         (dbus_binding_tool_output_glib_server): Pass prefix to
1451         glib-genmarshal.
1452         
1453 2005-05-11  Colin Walters  <walters@verbum.org>
1454
1455         * tools/dbus-send.c (append_array): New function.
1456         (append_arg): Broken out from main.
1457         (main): Add cheesy hack to send arrays and variants.
1458         (usage): Update.
1459         * tools/dbus-print-message.c (print_iter): Broken out
1460         from main.
1461
1462 2005-05-11  Colin Walters  <walters@verbum.org>
1463
1464         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
1465         New function, returns signature string for signature iter.
1466         * dbus/dbus-signature.h: Prototype it.
1467         * dbus/dbus-message.c (dbus_message_iter_get_signature):
1468         New function, returns signature string for message iter.
1469         (dbus_message_iter_get_array_len): New function, returns
1470         length of array.
1471         (dbus_message_iter_get_fixed_array): Fix assertion; this
1472         function should be used when the iter is pointing to the
1473         contents of an array
1474         * dbus/dbus-message.h: Prototypes.
1475         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
1476         New function; returns length of an array.
1477         * dbus/dbus-marshal-recursive.h: Prototype it.
1478         
1479 2005-05-11  Colin Walters  <walters@verbum.org>
1480
1481         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
1482         compilation error.
1483         
1484 2005-05-08  Havoc Pennington  <hp@redhat.com>
1485
1486         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
1487         daemon's pid, not the parent's pid, to the file descriptor.
1488         Reported by Taj Morton.
1489
1490 2005-05-05  Havoc Pennington  <hp@redhat.com>
1491
1492         * configure.in (LT_*): add notes on how the libtool versioning
1493         works to save thinking. Increment soname to indicate protocol
1494         breakage (though really the library interface hasn't changed I
1495         guess)
1496
1497         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1498         verify the GUID received from server matches what we were
1499         expecting, if we had an expectation
1500
1501         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
1502         (_dbus_auth_get_guid_from_server): new function
1503         (send_begin): parse the OK args
1504
1505         * doc/dbus-specification.xml: add GUID to the auth protocol
1506
1507 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
1508
1509         * Fix my name in previous changelog ;)
1510
1511         * python/proxies.py (ProxyObject.__getattr__): add further patch
1512         from Anthony Baxter to throw an AttributeError when python 
1513         __special__ functions are called instead of marshling them over 
1514         the bus (Bug#1685 comment 3).
1515
1516 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
1517
1518         * python/Makefile.am: changed to use pyexecdir for the binding
1519         shared libraries (Bug#2494)
1520
1521         * python/exceptions.py: bring exceptions over from the bindings
1522         so they can be used in applications (Bug#2036)
1523         Make all exceptions derive from DBusException
1524
1525         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
1526         of classes so that print obj doesn't throw an exception (Bug #1685)
1527
1528 2005-05-03  Ross Burton  <ross@openedhand.com>
1529
1530         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
1531         Return if we get an error during registration.  Set up a
1532         weak reference on object to unregister if object is destroyed.
1533         (unregister_gobject): New function.
1534         
1535 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
1536
1537         * python/dbus_bindings.pyx.in: 
1538         - added new type classes for hinting to the marashaler what type 
1539         to send over the wire
1540         - added int16 and uint16 marshalers
1541         - Fixed a bug in the type constants that caused int32 to go out
1542         as uint16 over the wire
1543         * python/dbus.py: split up into different files and renamed _dbus.py
1544         * python/__init__.py, python/_util.py, python/decorators.py, 
1545         python/exceptions.py, python/proxies.py, python/services.py,
1546         python/types.py: new files split off from dbus.py
1547         * python/Makefile.am: Add new files, remove dbus.py and 
1548         install all python files to <python module dir>/dbus
1549         * python/examples/*: Added #!/usr/bin/env python to the top of
1550         every example.  Patch provided by Tatavarty Kalyan
1551
1552 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
1553
1554         * NEWS: Update to 0.33
1555
1556 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
1557
1558         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
1559         method for doing async calls
1560         (_pending_call_notification): New C function for handling pendning call
1561         callbacks
1562         (set_notify): New method for setting pending call notification
1563         
1564         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
1565         Async capabilities added to remote method calls
1566         (Sender): class removed
1567         (RemoteService): class removed
1568         (ObjectTree): class removed for now
1569         (RemoteObject): Renamed to ProxyObject
1570         (RemoteMethod): Renamed to ProxyMethod
1571         (method): Decorator added for decorating python methods as dbus methods
1572         (signal): Decorator added for decorating python methods as signal emitters
1573         (ObjectType): Metaclass added for generating introspection data and the
1574         method callback vtable
1575         (Interface): Wrapper class added to wrap objects in a dbus interface
1576         (Object): Uses ObjectType as its metaclass and exports Introspect
1577         of the org.freedesktop.DBus.Introspectable interface
1578         (ValidationException, UnknownMethodException): new exceptions
1579
1580         * python/examples/*: Modified to fit with the new bindings
1581
1582 2005-04-23  Havoc Pennington  <hp@redhat.com>
1583
1584         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
1585         reported by Tony Houghton
1586
1587         * test/test-service.c (main): test
1588         dbus_connection_get_object_path_data()
1589
1590         * dbus/dbus-object-tree.c (find_handler): be sure we always init
1591         the exact_match
1592         (_dbus_object_tree_get_user_data_unlocked): new function used by
1593         dbus_connection_get_object_path_data()
1594         (do_register): add assertion test for get_user_data_unlocked
1595         (object_tree_test_iteration): more tests
1596
1597         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
1598         new function from Dan Reed to let you get the user data from 
1599         dbus_connection_register_object_path()
1600
1601 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
1602
1603         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
1604         in numerous places that did not account for the NULL terminator
1605         (signature_from_seed): changed the manual string copy loop to 
1606         just use strcpy instead
1607         make check should now pass
1608
1609 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
1610
1611         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
1612         so that it allows messages that are not signals to pass in 
1613         NULL as the interface.
1614
1615 2005-04-18  David Zeuthen  <davidz@redhat.com>
1616
1617         * glib/dbus-gmain.c (io_handler_destroy_source): 
1618         (timeout_handler_destroy_source, connection_setup_free): 
1619         Also unref the source to avoid memory leaks.
1620
1621 2005-04-13  David Zeuthen  <davidz@redhat.com>
1622
1623         * bus/config-parser.c (bus_config_parser_new): Bump this to a
1624         more reasonable, yet still totally arbitrary, value :-). 
1625
1626 2005-04-13  David Zeuthen  <davidz@redhat.com>
1627
1628         * doc/TODO: Added an "important for 1.0" item about selinux
1629         allow/deny messages
1630
1631 2005-04-13  David Zeuthen  <davidz@redhat.com>
1632
1633         * bus/selinux.c: Add c-file-style to top of file
1634         (log_audit_callback): Don't free the data here anymore
1635         (bus_selinux_check): Don't take spid and tpid since appending
1636         that to auxdata may OOM.
1637         (bus_selinux_allows_acquire_service): Handle OOM and signal back
1638         to the caller if we are OOM by taking an error object.
1639         (bus_selinux_allows_send): -do-
1640
1641         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
1642         and bus_selinux_allows_send
1643
1644         * bus/bus.c (bus_context_check_security_policy): Pass error and
1645         pass on OOM thrown by bus_selinux_allows_send()
1646
1647         * bus/services.c (bus_registry_acquire_service): Pass error and
1648         pass on OOM thrown by bus_selinux_allows_acquire_service()
1649
1650 2005-04-13  Havoc Pennington  <hp@redhat.com>
1651
1652         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
1653         message at a time to avoid monopolizing the main loop, bug 
1654         #2953 from Benjamin Otte
1655
1656 2005-04-09  Havoc Pennington  <hp@redhat.com>
1657
1658         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
1659         possible overlap, fix from Daniel Reed
1660         (fixup_alignment): fix signedness warnings
1661         (_dbus_string_append_unichar): ditto
1662
1663 2005-04-09  Havoc Pennington  <hp@redhat.com>
1664
1665         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
1666
1667         * glib/dbus-glib-tool.c (main): fix warning
1668
1669         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
1670
1671         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
1672         add a new function that can be used in simple applications that
1673         don't have a main loop and are willing to block
1674
1675 2005-04-05  David Zeuthen  <davidz@redhat.com>
1676
1677         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
1678
1679         * glib/dbus-gmain.c:
1680         (io_handler_destroy_source): Remove from list of IO handlers
1681         of the ConnectionSetup object
1682         (timeout_handler_destroy_source): -do- for timeout handlers
1683         (io_handler_source_finalized): Don't remove from list since
1684         we now do that in io_handler_destroy_source(). Renamed from
1685         io_handler_source_destroyed
1686         (timeout_handler_source_destroyed): -do- for timeout handlers
1687         (connection_setup_free): It is now safe to iterate over all
1688         IO and timeout handlers as the _destroy_source removes them
1689         from the list synchronously
1690
1691 2005-03-30  Havoc Pennington  <hp@redhat.com>
1692
1693         * configure.in: change check to gtk 2.4
1694
1695         * tools/dbus-viewer.c (name_combo_changed_callback): remove
1696         gtk_combo_box_get_active_text() usage to decrement GTK requirement
1697         to 2.4
1698
1699 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
1700
1701         * News: Update 0.32
1702
1703         * HACKING: Fixed realease instructions.  configure.in should be updated to
1704           the next release by the person who made the last release.
1705
1706 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
1707
1708         * python/lvalue_cast_post_process.py - removed.  Patch has been
1709           submitted to Pyrex maintainers that fixes gcc4.0 errors
1710
1711         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
1712
1713 2005-03-24  Daniel Reed  <n@ml.org>
1714
1715         * tools/Makefile.am: Make print-introspect and
1716         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
1717
1718 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
1719
1720         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
1721
1722         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
1723           had in Red Hat packages for a while but for some reason never 
1724           got merged upstream
1725           (_dbus_is_a_number): New checks if a string
1726           can be converted to a number and does the conversion if it can
1727           (_dbus_user_database_lookup): Add check to see if the given username
1728           is a udi.  This allows udi's to be used instead of usernames in the
1729           config file.
1730           (_dbus_user_database_lookup_group): Add check to see if the given groupname
1731           is a gdi.  This allows gdi's to be used instead of groupnames in the
1732           config file.
1733
1734 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
1735
1736         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
1737           code so that it compiles with gcc4.0
1738
1739         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
1740           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
1741           results back to dbus_binding.c
1742
1743 2005-03-20  Colin Walters  <walters@verbum.org>
1744
1745         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
1746
1747         * configure.in: Require GTK+ 2.6.
1748         
1749 2005-03-20  Colin Walters  <walters@verbum.org>
1750
1751         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
1752
1753 2005-03-17  Tom Parker  <palfrey@tevp.net>
1754
1755         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
1756         print DBUS_UID_UNSET; instead print passed username.  Also
1757         be sure to actually use gid looked up in cache.
1758         
1759         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
1760         for DBUS_GID_UNSET and groupname.
1761
1762 2005-03-17  Colin Walters  <walters@verbum.org>
1763
1764         * bus/print-introspect.c: Move to tools/.
1765         * bus/run-with-tmp-session-bus.sh: Ditto.
1766         
1767         * glib/Makefile.am (dbus-glib-bindings.h): Move
1768         generation to tools/Makefile.am.
1769
1770         * test/glib/run-test.sh: Update to handle move
1771         of run-with-tmp-session-bus.sh.
1772
1773         * test/glib/test-service-glib.c: Update to handle
1774         move of dbus-glib-bindings.h.
1775
1776         * tools/print-introspect.c: Moved here
1777         from bus/, and ported to GLib bindings.
1778
1779         * tools/run-with-tmp-session-bus.sh: Moved here
1780         from bus/.
1781
1782         * tools/Makefile.am: Generate dbus-glib-bindings.h
1783         and dbus-bus-introspect.xml here.
1784
1785         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
1786         Update.
1787
1788 2005-03-17  Colin Walters  <walters@verbum.org>
1789
1790         * bus/driver.c (write_args_for_direction): Use
1791         _dbus_string_get_const_data to retrieve string;
1792         _dbus_string_get_const_data_len doesn't actually return
1793         a NULL-terminated substring.
1794
1795         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
1796         (main): Change to use org_freedesktop_DBus_request_name
1797         instead of using g_proxy_begin_call/end_call.
1798
1799 2005-03-15  Joe Shaw  <joeshaw@novell.com>
1800
1801         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
1802         generating the finalizer.  Fixes from Ben Maurer.
1803
1804 2005-03-12  Joe Shaw  <joeshaw@novell.com>
1805
1806         * mono/BusDriver.cs: Update method names: ListServices
1807         becomes ListNames; GetOwner becomes GetNameOwner.
1808
1809         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
1810         onto the eval stack when removing the delegate.
1811
1812 2005-03-12  Joe Shaw  <joeshaw@novell.com>
1813
1814         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
1815         LT_CURRENT.  Set it to the autoconf variable.
1816                                                                                 
1817         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
1818         classes that disconnects the signal handler delegate from the
1819         service object.  Fixes a big leak of proxy objects on the
1820         client side of things.  Patch from Ben Maurer
1821         <bmaurer@ximian.com>
1822
1823 2005-03-12  Colin Walters  <walters@verbum.org>
1824
1825         * bus/driver.c (write_args_for_direction): New function,
1826         parses a type signature into arguments and outputs to
1827         XML.
1828         (bus_driver_handle_introspect): Use it instead of
1829         hardcoding XML for certain signatures.
1830         
1831         * bus/Makefile.am (dbus-bus-introspect.xml): Add
1832         dependency on dbus-daemon.
1833
1834         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
1835         argument, pass it to dbus_binding_tool_output_glib_client.
1836
1837         * glib/dbus-binding-tool-glib.c
1838         (generate_client_glue): Protect against multiple inclusion.
1839         (dbus_binding_tool_output_glib_client): Add
1840         G_BEGIN_DECLS/G_END_DECLS.
1841
1842         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
1843         Change to just take iface prefix directly.
1844         (write_formal_parameters): Clarify error message.
1845         (check_supported_parameters): New function; checks to see type
1846         signatures of method parameters are supported.
1847         (generate_client_glue): Handle ignore_unsupported flag.
1848         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
1849         parameter.
1850
1851         * glib/Makefile.am (dbus-glib-bindings.h): Pass
1852         --ignore-unsupported by default until glib bindings
1853         support arrays.
1854
1855 2005-03-11  Colin Walters  <walters@verbum.org>
1856
1857         * glib/Makefile.am: Generate dbus-glib-bindings.h and
1858         install it.
1859
1860         * bus/print-introspect.c: New file; prints introspection
1861         data for a given name and object path.
1862
1863         * bus/run-with-tmp-session-bus.sh: New file, refactored
1864         from test/glib/run-test.sh.  Creates a temporary session
1865         bus and runs another program.
1866
1867         * test/glib/run-test.sh: Refactor to invoke
1868         run-with-tmp-session-bus.sh.
1869
1870         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
1871         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
1872         macros instead of hardcoding.
1873
1874         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
1875
1876 2005-03-11  Joe Shaw  <joeshaw@novell.com>
1877
1878         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
1879         this unref; it doesn't match up evenly in some codepaths.
1880         (_dbus_connection_block_pending_call): Unref at every exitpoint;
1881         this evenly matches with the ref near the top of this function.
1882
1883 2005-03-09  Joe Shaw  <joeshaw@novell.com>
1884
1885         * dbus/dbus-object-tree.c
1886         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
1887         and we try to unregister a path that's not registered, still go
1888         through the process of unlocking and don't just return.
1889
1890 2005-03-09  Colin Walters  <walters@verbum.org>
1891
1892         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
1893         to this are generated for client-side wrappers.  Invokes a
1894         D-BUS method and returns reply values.  
1895
1896         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
1897         function; writes signature string for argument direction.
1898         (write_args_for_direction): Change to pass input values directly
1899         instead of via address, and fix indentation.
1900         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
1901         make generated wrappers inlineable.
1902
1903         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
1904         note about using dbus_type_is_fixed.
1905
1906         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
1907         dbus/dbus-signature.c as dbus_type_is_fixed.
1908
1909         All callers updated.
1910
1911         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
1912         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
1913
1914         * dbus/dbus-signature.h: Prototype.
1915
1916         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
1917         error printf code.
1918
1919         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
1920         appropriate instead of just freeing it.
1921         (main): Free returned strings using g_free.
1922
1923         * test/glib/Makefile.am (test-service-glib-glue.h)
1924         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
1925
1926         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
1927         simply maps a simple D-BUS type to GType.
1928         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
1929         GType.
1930         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
1931         initialize the value with it.
1932         (dbus_gvalue_binding_type_from_type): Unused, delete.
1933         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
1934         various types instead of unmarshalling to value data directly.
1935         Remove can_convert boolean.
1936         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
1937         returning directly instead of using can_convert boolean.
1938         (dbus_gvalue_store): New function; not related to D-BUS per-se.
1939         Stores a GValue in a pointer to a value of its corresponding C
1940         type.
1941
1942         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
1943         add dbus_gvalue_store.
1944
1945 2005-03-08  Joe Shaw  <joeshaw@novell.com>
1946
1947         Fix a bunch of lifecycle and memory management problems
1948         in the mono bindings.
1949
1950         * mono/Arguments.cs (Arguments): Implement IDisposable
1951
1952         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
1953         strictly a static class.
1954
1955         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
1956         delegates into this file.
1957         (Connection): Implement IDisposable.
1958         (Dispose): Disconnect the connection and set the raw connection
1959         pointer to IntPtr.Zero.
1960         (~Connection): Call Dispose().
1961         (RegisterObjectPath): Added.  Manages the registration of object
1962         paths so we can cleanly disconnect them at dispose/finalize time.
1963         (UnregisterObjectPath): Ditto.
1964         (set_RawConnection): Unregister all of the object paths when
1965         changing the underlying DBusConnection.  Add them back onto the
1966         new connection, if any.
1967
1968         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
1969         more unmanaged resources anymore, so it's not necessary.  Move all
1970         the DBusObjectPathVTable stuff out of here.
1971         (Handler): Save references to our delegates so that they don't get
1972         finalized.  Call Connection.RegisterObjectPath() instead of
1973         dbus_connection_register_object_path() directly.
1974         (Message_Called): Dispose the message after we're finished with
1975         it.
1976
1977         * mono/Message.cs (Message): Implement IDisposable.
1978         (Dispose): Dispose the Arguments, and set the RawMessage to
1979         IntPtr.Zero.
1980         (SendWithReplyAndBlock): We own the ref to the reply that comes
1981         back from dbus_connection_send_with_reply_and_block() so add a
1982         comment about that and unref it after we've constructed a managed
1983         MethodReturn class around it.  Fixes a big, big leak.
1984
1985         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
1986         method.
1987         (BuildSignalHandler): After we've sent the Signal message, dispose
1988         of it.
1989         (BuildMethod): Dispose of the method call and reply messages after
1990         we've sent the message and extracted the data we want from the
1991         reply.
1992
1993         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
1994         anymore.
1995         (Service_FilterCalled): Dispose of the message after we're
1996         finished with it.
1997
1998 2005-03-08  Joe Shaw  <joeshaw@novell.com>
1999
2000         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
2001         After we attach our pending call to the connection, unref
2002         it.  Fixes a leak.
2003  
2004         * mono/Connection.cs (set_RawConnection): Disconnect our
2005         filter and match callbacks from the old connection and
2006         reconnect them to the new connection, if any.
2007
2008         * mono/DBusType/Array.cs: "Code" is a static member, so
2009         don't use "this" to refer to it.  Fix for stricter checking
2010         in Mono 1.1.4.
2011  
2012         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
2013         object path that we pass into unmanaged code.
2014  
2015         * mono/DBusType/String.cs (Append): Don't leak the string
2016         that we pass into unmanged code.
2017
2018 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
2019         * NEWS: Update for 0.31
2020
2021         * configure.in: Release 0.31
2022         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
2023
2024         * qt/Makefile.am: fixed build
2025
2026         * dbus/Makefile.am: soname bump for libdbus
2027
2028         * glib/Makefile.am: soname bump for libdbus-glib
2029
2030 2005-03-05  Havoc Pennington  <hp@redhat.com>
2031
2032         * dbus/dbus-sysdeps.c:
2033         (pseudorandom_generate_random_bytes_buffer): fix to have no return
2034         value
2035         (_dbus_generate_random_bytes_buffer): fix return value
2036
2037         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
2038         checks actually work, from Tom Parker <fdo@tevp.net>
2039
2040 2005-03-01  Colin Walters  <walters@verbum.org>
2041
2042         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
2043         functions copied from dbus-glib-tool.c.
2044         (main): Convert lots of error code to use them.
2045         Also add some testing for introspection bits.
2046
2047 2005-03-01  Colin Walters  <walters@verbum.org>
2048         
2049         * doc/TODO: Remove introspection signature TODO.
2050
2051 2005-02-27  Colin Walters  <walters@verbum.org>
2052
2053         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
2054         Change return value to const char * instead of int so we can do
2055         full signatures.
2056         (struct PropertyInfo, struct ArgInfo): Store char *.
2057         (property_info_new, arg_info_new): Update parameters, strdup.
2058         (property_info_unref, arg_info_unref): Free.
2059
2060         * glib/dbus-gidl.h: Update prototypes.
2061
2062         * glib/dbus-gparser.c (basic_type_from_string): Delete.
2063         (validate_signature): New function, just validates signature and
2064         sets GError.
2065         (parse_property, parse_arg): Invoke validate_signature.  Store
2066         signature instead of just type code.
2067
2068         * glib/dbus-gvalue.c (base_type_from_signature): New utility
2069         function to return a primary type for a signature, dropping
2070         information about types in container types.
2071         (dbus_gvalue_genmarshal_name_from_type)
2072         (dbus_gvalue_binding_type_from_type)
2073         (dbus_gvalue_ctype_from_type): Update to take full signature
2074          instead of type code.
2075         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
2076
2077         * glib/dbus-gvalue.h: Update prototypes for above.
2078
2079         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
2080         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
2081         (introspect_properties, introspect_signals, write_interface):
2082         Update to handle signatures, and remove usage of
2083         _dbus_gutils_type_to_string.
2084         (handle_introspect): Print out type codes instead of e.g. "string"
2085         in hardcoded introspection XML; also use x_AS_STRING constants
2086         instead of hardcoding in string.
2087
2088         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
2089         to string.  Remove usage of _dbus_gutils_type_to_string.
2090
2091         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
2092
2093         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
2094         deletion.
2095         
2096         * glib/dbus-binding-tool-glib.c (compute_marshaller)
2097         (compute_marshaller_name, generate_glue): Handle signature change
2098         to string.
2099         (write_formal_parameters, write_args_for_direction): Ditto, and
2100         remove FIXME.
2101
2102         * tools/dbus-tree-view.c (type_to_string): Delete.
2103         (info_set_func_text): Update to print full signatures.
2104
2105         * test/glib/test-service-glib.xml: Change types to new
2106         introspection format.
2107
2108 2005-02-26  Havoc Pennington  <hp@redhat.com>
2109
2110         * doc/TODO: remove the "guid" item
2111
2112         * test/glib/test-profile.c (no_bus_thread_func): use open_private
2113         (with_bus_thread_func): use open_private
2114
2115         * dbus/dbus-connection.c (dbus_connection_open_private): new
2116         function that works like the old dbus_connection_open()
2117         (dbus_connection_open): now returns an existing connection if
2118         possible
2119
2120         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
2121         through the GUID to the transport
2122
2123         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
2124         GUID in hex-encoded form.
2125
2126         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2127         pass GUID argument in to the transport
2128
2129         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
2130         guid argument
2131
2132         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
2133
2134         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
2135
2136 2005-02-25  Havoc Pennington  <hp@redhat.com>
2137
2138         * doc/dbus-specification.xml: document the GUID thing
2139
2140         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
2141         globally unique ID for the server, and put a "guid=hexencoded"
2142         field in the address
2143
2144         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
2145
2146         * dbus/dbus-message.c: ditto
2147
2148         * dbus/dbus-dataslot.c: ditto
2149
2150         * dbus/dbus-list.c: ditto
2151
2152         * dbus/dbus-internals.h: wait, just include
2153         dbus-threads-internal.h here
2154         
2155         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
2156         use in main library
2157
2158         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
2159
2160 2005-02-24  Colin Walters  <walters@verbum.org>
2161
2162         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
2163
2164 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
2165
2166         * glib/Makefile.am: added dbus-gobject.h to sources list
2167         so distcheck doesn't fail
2168         
2169 2005-02-24  Havoc Pennington  <hp@redhat.com>
2170
2171         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
2172         you must disconnect before unref, since locking and other things
2173         are screwed up otherwise. Fix assorted other locking stuff.
2174
2175         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
2176         fix compilation
2177
2178         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
2179         into a private header and don't export from the library
2180
2181         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
2182
2183 2005-02-24  Colin Walters  <walters@verbum.org>
2184         
2185         * dbus/dbus-signature.c: New file; implements various functions
2186         related to type signatures.  Includes an interator for parsing,
2187         validation functions.
2188         (dbus_type_is_basic): Moved here from
2189         dbus-marshal-basic.c:_dbus_type_is_basic.
2190         (dbus_type_is_container): Moved here from
2191         dbus-marshal-basic.c:_dbus_type_is_container.
2192
2193         All callers of _dbus_type_is_container and _dbus_type_is_basic
2194         updated, and include dbus-signature.h.
2195
2196         * dbus/dbus-signature.h: New file; prototypes for the above.
2197
2198         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
2199         dbus-signature.h.
2200
2201         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
2202         function factored out of _dbus_first_type_in_signature.
2203         (_dbus_first_type_in_signature_c_str): New function; returns first
2204         type code for a type signature character.
2205
2206         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
2207         handle function moves.
2208
2209         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
2210
2211         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
2212         function; skips to next complete type in type signature.
2213         Implemented using previous skip_one_complete_type.  Now
2214         skip_one_complete_type just delegates to
2215         _dbus_type_signature_next.
2216
2217         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
2218         to dbus-signature.c
2219         (_dbus_type_is_container): Ditto.
2220
2221         * doc/dbus-specification.xml: Update introspection sample to
2222         use real type signatures.
2223
2224         * dbus/dbus-test.h: Prototype signature test.
2225
2226         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
2227         signature tests.
2228
2229         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
2230
2231 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
2232
2233         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
2234         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
2235
2236 2005-02-21  Colin Walters  <walters@verbum.org>
2237
2238         * dbus/dbus-test-main.c (main): Take optional specific test
2239         argument.
2240
2241         * dbus/dbus-test.c (run_test): New function, runs a test function
2242         with no data directory.
2243         (run_data_test): Like above, but takes data directory.
2244         (dbus_internal_do_not_use_run_tests): Take
2245         specific test argument.  Replace lots of cut n' paste code
2246         with run_test and run_data_test.
2247
2248         * dbus/dbus-test.h: Update prototype for
2249         dbus_internal_do_not_use_run_tests.
2250
2251 2005-02-20  Havoc Pennington  <hp@redhat.com>
2252
2253         Fix bugs reported by Daniel P. Berrange
2254         
2255         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
2256         (protected_change_watch): new function
2257         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
2258         (_dbus_server_add_watch): change to work like the
2259         dbus-connection.c equivalents; like those, probably kind of
2260         busted, but should at least mostly work for now
2261         (dbus_server_disconnect): drop the lock if we were already
2262         disconnected, patch from Daniel P. Berrange
2263
2264         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
2265         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
2266         same stuff
2267
2268         * doc/TODO: todo about unscrewing this mess
2269
2270 2005-02-19  Colin Walters  <walters@verbum.org>
2271
2272         * glib/dbus-binding-tool-glib.c
2273         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
2274
2275         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
2276         as errno.h and sys/stat.h.
2277         (lose): New function, prints error with
2278         newline and exits.
2279         (lose_gerror): Similar, but takes GError for message.
2280         (main): Add --output argument to specify output file to write to,
2281         instead of always printing to stdout.  In this mode, determine
2282         timestamps on source files to see whether any are newer than the
2283         target file.  If not, exit.  Also convert a number of error
2284         messages to use lose (since it's shorter), and switch to using
2285         g_io_channel_shutdown.
2286
2287 2005-02-19  Havoc Pennington  <hp@redhat.com>
2288
2289         * glib/dbus-gobject.c
2290         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
2291
2292         * glib/dbus-glib.c: fix doxygen warnings
2293
2294         * glib/dbus-gparser.c (parse_annotation): error if an annotation
2295         is found on an <arg>
2296
2297 2005-02-17  Colin Walters  <walters@verbum.org>
2298
2299         * glib/dbus-gobject.h: Don't export
2300         _dbus_glib_marshal_dbus_message_to_gvalue_array.
2301         
2302         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
2303         (invoke_object_method): Handle it.
2304
2305         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2306         Handle rename.
2307         
2308 2005-02-17  Colin Walters  <walters@verbum.org>
2309
2310         * bus/.cvsignore, doc/.cvsignore
2311         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
2312         Update.
2313
2314 2005-02-17  Colin Walters  <walters@verbum.org>
2315         
2316         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
2317         Rename to DBUS_SERVICE_DBUS.
2318         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
2319         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
2320         Change the value from "org.freedesktop.Local"
2321         to "org.freedesktop.DBus.Local".
2322         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
2323         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
2324         DBUS_INTERFACE_INTROSPECTABLE.
2325         Change the value from "org.freedesktop.Introspectable"
2326         to "org.freedesktop.DBus.Introspectable".
2327         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
2328         DBUS_INTERFACE_PROPERTIES.
2329         Change the value from "org.freedesktop.Properties"
2330         to "org.freedesktop.DBus.Properties".
2331         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
2332         DBUS_INTERFACE_PEER.
2333         Change the value from "org.freedesktop.Peer"
2334         to "org.freedesktop.DBus.Peer".
2335         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
2336         DBUS_INTERFACE_LOCAL.
2337         Change the value from "org.freedesktop.Local"
2338         to "org.freedesktop.DBus.Local".
2339
2340         All other users of those constants have been changed.
2341
2342         * bus/driver.c (bus_driver_handle_introspect): Use constants.
2343
2344         * glib/dbus-gobject.c (handle_introspect): Use constants.
2345
2346         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
2347
2348 2005-02-17  Colin Walters  <walters@verbum.org>
2349
2350         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
2351         (parse_node, parse_interface, parse_method, parse_signal)
2352         (parse_property, parse_annotation): Lose if we're currently in an
2353         annotation.
2354         (parse_annotation): New function.
2355         (parser_start_element, parser_end_element): Handle annotation.
2356         (parse_method, parse_interface): Remove support for c_name attribute,
2357         switch to annotations.
2358
2359         * glib/dbus-gidl.h (interface_info_get_binding_names)
2360         (method_info_get_binding_names)
2361         (interface_info_get_binding_name, method_info_get_binding_name)
2362         (interface_info_set_binding_name, method_info_set_binding_name):
2363         Remove.
2364         (interface_info_get_annotations, method_info_get_annotations)
2365         (interface_info_get_annotation, method_info_get_annotation)
2366         (interface_info_add_annotation, method_info_add_annotation):
2367         Prototype.
2368
2369         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
2370         for "bindings".
2371         (struct MethodInfo): Ditto.
2372         Straightfoward conversion of binding methods into annotation methods
2373         as prototyped.
2374
2375         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
2376
2377         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
2378
2379         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
2380         Use new annotation API.
2381
2382         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
2383         annotation element.
2384         
2385         * doc/dbus-specification.xml: Discuss introspection annotations,
2386         include list of well-known annotations.
2387
2388         * test/glib/test-service-glib.xml: Make validate against new DTD.
2389
2390 2005-02-17  Colin Walters  <walters@verbum.org>
2391
2392         This patch is based on initial work from
2393         Paul Kuliniewicz <kuliniew@purdue.edu>.
2394
2395         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
2396         initialization of GValue from dbus type to here.
2397         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
2398         for the "glib-genmarshal" program from a DBus type.
2399         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
2400         into the C name for it we use in the glib bindings.
2401         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
2402         glib C type (not GValue).
2403         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
2404
2405         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
2406         from dbus-gobject.c.
2407
2408         * glib/dbus-gutils.h: Prototype it.
2409
2410         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
2411         (marshal_dbus_message_to_g_marshaller): Use new shared function
2412         dbus_glib_marshal_dbus_message_to_gvalue_array.
2413
2414         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
2415         Will be changed once we have annotations.
2416
2417         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
2418         GStaticRWLock.  Callers updated.
2419         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
2420         (string_table_next): New function for iterating over zero-terminated
2421         string value array.
2422         (string_table_lookup): New function; retrieves specific entry in
2423         array.
2424         (get_method_data): New function; look up method data in object data chunk.
2425         (object_error_domain_prefix_from_object_info)
2426         (object_error_code_from_object_info): New functions, but not implemented yet.
2427         (method_interface_from_object_info): New function; retrieve interface name.
2428         (method_name_from_object_info): New function; retrieve method name.
2429         (method_arg_info_from_object_info): New function; retrieve argument data.
2430         (arg_iterate): New function; iterates over serialized argument data.
2431         (method_dir_signature_from_object_info): New function; returns a
2432         GString holding type signature for arguments for just one
2433         direction (input or output).
2434         (method_input_signature_from_object_info)
2435         (method_output_signature_from_object_info): New functions.
2436         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
2437         converts dbus message arguments into a GValue array.  Used for both
2438         signal handling and method invocation.
2439         (struct DBusGlibWriteIterfaceData): New utility structure.
2440         (write_interface): New function; generate introspection XML for
2441         an interface.
2442         (introspect_interfaces): New function; gathers all interface->methods,
2443         generates introspection XML for them.
2444         (handle_introspect): Invoke introspect_interfaces.
2445         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
2446         (lookup_object_and_method): New function; examines an incoming message
2447         and attempts to match it up (via interface, method name, and argument
2448         signature) with a known object and method.
2449         (gerror_domaincode_to_dbus_error_name): New function; converts a
2450         GError domain and code into a DBus error name.  Needs GError data
2451         added to object introspection to work well.
2452         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
2453         GError.
2454         (invoke_object_method): New function to invoke an object method
2455         looked up via lookup_object_and_method.  Parses the incoming
2456         message, turns it into a GValue array, then invokes the marshaller
2457         specified in the DBusGMethodInfo.  Creates a new message with
2458         either return values or error message as appropriate.
2459         (gobject_message_function): Invoke lookup_object_and_method and
2460         invoke_object_method.
2461
2462         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
2463         (enum DBusBindingOutputMode): New enum for binding output modes.
2464         (pretty_print): Print binding names.
2465         (dbus_binding_tool_error_quark): GError bits.
2466         (version): Fix typo.
2467         (main): Create GIOChannel for output.  Parse new --mode argument,
2468         possible values are "pretty-print", "glib-server", "glib-client".
2469         Use mode to invoke appropriate function.
2470         
2471         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
2472
2473         * glib/dbus-glib-tool.h: New header, just includes GError bits
2474         for now.
2475
2476         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
2477         maps binding style to name.
2478         (struct MethodInfo): Ditto.
2479         (get_hash_keys, get_hash_key): Utility function, returns keys for
2480         a GHashTable.
2481         (interface_info_new, method_info_new): Initialize bindings.
2482         (interface_info_unref, method_info_unref): Destroy bindings.
2483         (method_info_get_binding_names, method_info_get_binding_name)
2484         (interface_info_get_binding_names, interface_info_get_binding_name):
2485         Functions for retrieving binding names.
2486         (method_info_set_binding_name, interface_info_set_binding_name):
2487         Functions for setting binding names.
2488
2489         * glib/dbus-binding-tool-glib.h: New file, has prototypes
2490         for glib binding generation.
2491
2492         * glib/dbus-binding-tool-glib.c: New file, implements server-side
2493         and client-side glib glue generation.
2494
2495         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
2496         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
2497         dbus-glib-tool.h.
2498
2499         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
2500         of using GClosureMarshal directly.
2501         (struct DBusGObjectInfo): Add n_infos member.
2502
2503         * test/glib/test-service-glib.xml: New file; contains introspection data
2504         for MyTestObject used in test-service-glib.c.
2505
2506         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
2507         (my_object_do_nothing, my_object_increment, my_object_throw_error)
2508         (my_object_uppercase, my_object_many_args): New test methods.
2509         (main): Use dbus_g_object_class_install_info to include generated object
2510         info.
2511
2512         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
2513         as well as client-side bindings.
2514
2515         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
2516         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
2517         using both the dbus_gproxy stuff directly as well as the generated bindings.
2518
2519 2005-02-15  Havoc Pennington  <hp@redhat.com>
2520
2521         * dbus/dbus-connection.c (dbus_connection_dispatch): always
2522         complete a pending call, don't run filters first.
2523
2524         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
2525         dbus_pending_call_steal_reply
2526
2527         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
2528         _dbus_connection_block_pending_call
2529         (dbus_pending_call_get_reply): change to steal_reply and return a
2530         ref
2531
2532         * dbus/dbus-connection.c
2533         (dbus_connection_send_with_reply_and_block): port to work in terms
2534         of DBusPendingCall
2535         (_dbus_connection_block_pending_call): replace block_for_reply
2536         with this
2537
2538 2005-02-14  Havoc Pennington  <hp@redhat.com>
2539
2540         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
2541         properly handle looking up group information by name; fix 
2542         from j@bootlab.org
2543
2544 2005-02-13  Havoc Pennington  <hp@redhat.com>
2545
2546         * dbus/dbus-connection.c (dbus_connection_return_message) 
2547         (dbus_connection_borrow_message): hold dispatch lock while message
2548         is outstanding
2549         (_dbus_connection_block_for_reply): hold dispatch lock while we
2550         block for the reply, so nobody steals our reply
2551         (dbus_connection_pop_message): hold the dispatch lock while we
2552         pluck the message
2553
2554 2005-02-13  Havoc Pennington  <hp@redhat.com>
2555
2556         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
2557         (_dbus_connection_release_dispatch)
2558         (_dbus_connection_acquire_io_path)
2559         (_dbus_connection_release_io_path): make the mutex and condvar
2560         control access to the "acquired" flag. Drop the connection lock
2561         while waiting on the condvar. Hopefully these are baby steps in
2562         roughly the right direction.
2563
2564 2005-02-13  Havoc Pennington  <hp@redhat.com>
2565
2566         * dbus/dbus-connection.c: use separate mutexes for the condition
2567         variables; this is some kind of baseline for sanity, but the
2568         condition variables still aren't used correctly afaict
2569
2570 2005-02-13  Havoc Pennington  <hp@redhat.com>
2571
2572         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2573         fix a double-unlock
2574
2575         * dbus/dbus-connection.c
2576         (_dbus_connection_detach_pending_call_unlocked): add this
2577
2578         Initial semi-correct pass through to fix thread locking; there are
2579         still some issues with the condition variable paths I'm pretty
2580         sure
2581         
2582         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
2583         lock/unlock calls
2584
2585         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
2586         rename to add _unlocked
2587         (struct DBusConnection): move "dispatch_acquired" and
2588         "io_path_acquired" to use only one bit each.
2589         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
2590         (dbus_connection_set_watch_functions): hacky fix to reentrancy
2591         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
2592         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
2593         (_dbus_connection_remove_timeout) 
2594         (_dbus_connection_toggle_timeout): drop lock when calling out to
2595         user functions; done in a hacky/bad way.
2596         (_dbus_connection_send_and_unlock): add a missing unlock
2597         (_dbus_connection_block_for_reply): add a missing unlock
2598
2599         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2600         drop lock in a hacky probably unsafe way to call out to user
2601         function
2602
2603 2005-02-12  Havoc Pennington  <hp@redhat.com>
2604
2605         * tools/dbus-tree-view.c (info_set_func_text): display more
2606         details on args
2607
2608         * bus/driver.c (bus_driver_handle_list_services): list the bus
2609         driver
2610
2611         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
2612
2613         * glib/dbus-gidl.c (signal_info_get_n_args): new function
2614         (method_info_get_n_args): new function
2615
2616 2005-02-12  Havoc Pennington  <hp@redhat.com>
2617
2618         * bus/driver.c (bus_driver_handle_introspect): add introspection
2619         for bus driver
2620
2621 2005-02-12  Havoc Pennington  <hp@redhat.com>
2622
2623         * bus/driver.c: put the signature of each bus driver method in the
2624         table of handlers and check it on incoming calls; this isn't
2625         really useful, but going to add introspect support in a minute.
2626
2627 2005-02-11  Joe Shaw  <joeshaw@novell.com>
2628
2629         * mono/Connection.cs: The unpredictability of finalizers in mono
2630         prevents us from deterministically disconnecting the filters from
2631         the Service class's finalizer, so move tracking of filters and
2632         matches here.  Add API for that.
2633
2634         * mono/Service.cs: Remove the code, add code which calls the
2635         methods now on the Connection class.
2636
2637 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
2638
2639         * python/dbus.py (class Sender): added to support dbus signals better
2640         (Bus::add_signal_receiver): added expand_args parameter which defaults
2641         to True.  When expand args is True the signal handler will pass the 
2642         message arguments as parameters to the signal handler.  If False
2643         revert to previous behavior where the signal handler must get the
2644         argument list from the message.  This is to help port applications
2645         like HAL that have a tendancy to send variable length argument lists.
2646         self._match_rule_to_receivers is now a dict of dicts.
2647         (Bus::remove_signal_receiver): pop handler off the dict intead of 
2648         removing it from a list
2649         (Bus::_signal_func): change signal handlers so that interface,
2650         signal_name, service, path and message are packed into a Sender
2651         object and that is passed to the handler.  If expand_args is True
2652         extract the args list from the message and append it to the parameter
2653         list
2654         
2655         * python/dbus_bindings.pyx.in (class Signature): added to support 
2656         signiature types
2657         (MessageIter::__init__): changed iteration limit to match D-BUS
2658         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
2659         STRUCT and VARIENT type support
2660         (MessageIter::python_value_to_dbus_sig): made recursive to support
2661         recursive types
2662         (MessageIter::append*): added Signature, dict, tuple 
2663         support
2664
2665         * python/examples/example-client.py: added examples of getting tuples
2666         and dicts
2667
2668         * python/examples/example-service.py: added examples of sending tuples
2669         and dicts
2670
2671         * python/examples/example-signal-recipient.py: Fixed to handle new
2672         signal callback format
2673
2674 2005-02-10  Havoc Pennington  <hp@redhat.com>
2675
2676         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
2677         (call dbus_g_proxy_add_signal)
2678
2679         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2680         escape the hostname
2681         (_dbus_server_new_for_domain_socket): escape the path
2682
2683         * dbus/dbus-address.c (dbus_address_escape_value): new
2684         (dbus_address_unescape_value): new
2685         (dbus_parse_address): unescape values
2686
2687         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
2688
2689         * doc/dbus-specification.xml: explain how to escape values in
2690         addresses
2691
2692 2005-02-10  Havoc Pennington  <hp@redhat.com>
2693
2694         * dbus/dbus-message-factory.c (generate_special): modify test to
2695         avoid using a non-basic dict key
2696
2697         * dbus/dbus-marshal-validate-util.c: add test for the below
2698
2699         * doc/dbus-specification.xml: require that dict keys are a basic
2700         type
2701
2702         * dbus/dbus-marshal-validate.c
2703         (_dbus_validate_signature_with_reason): require that dict key is a
2704         basic type
2705
2706 2005-02-10  Havoc Pennington  <hp@redhat.com>
2707
2708         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2709         change to be _and_unlock instead of _unlocked
2710
2711         * dbus/dbus-connection.c
2712         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
2713         have no_update so we can find this bug quickly in future
2714
2715 2005-02-10  Havoc Pennington  <hp@redhat.com>
2716
2717         * dbus/dbus-message-util.c (verify_test_message): tests for string
2718         array
2719
2720         * dbus/dbus-message.c (dbus_message_append_args_valist): add
2721         support for arrays of string/signature/path
2722
2723 2005-02-10  Joe Shaw  <joeshaw@novell.com>
2724
2725         * dbus/dbus-connection.c
2726         (_dbus_connection_queue_received_message_link,
2727         _dbus_connection_message_sent): Add the path to
2728         the verbose output.
2729         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
2730         _dbus_connection_send_preallocated_unlocked(), updated the
2731         dispatch status, and unlocks.  Fixes a bug where certain
2732         situations (like a broken pipe) could cause a Disconnect message
2733         to not be sent, tricking the bus into thinking a service was still
2734         there when the process had quit.
2735         (_dbus_connection_send_preallocated): Call
2736         _dbus_connection_send_preallocated_and_unlock().
2737         (_dbus_connection_send_and_unlock): Added.  Calls
2738         _dbus_connection_send_preallocated_and_unlock().
2739         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
2740         (dbus_connection_send_with_reply): Update the dispatch status and
2741         unlock.
2742
2743         * mono/Service.cs (~Service): Added.  Removes the filter so that
2744         we don't get unmanaged code calling back into a GCed delegate.
2745         (RemoveFilter); Added.
2746
2747 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
2748
2749         * dbus/dbus-message.c (dbus_message_iter_open_container):
2750         - Removed check for iterator type being an array because
2751         get_arg_type does not work with writer iterators
2752         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
2753
2754 2005-02-07  Havoc Pennington  <hp@redhat.com>
2755
2756         * doc/dbus-specification.xml: some more language cleanups; add
2757         stuff about how to deal with invalid protocol and extension
2758         points; add _ to allowed chars in auth commands; add EXTENSION_
2759         auth command prefix
2760
2761 2005-02-06  Havoc Pennington  <hp@redhat.com>
2762
2763         * s/expected/required/ in a couple places for clarity
2764
2765 2005-02-07  Colin Walters  <walters@verbum.org>
2766
2767         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
2768         sender or proposed_recipient.
2769
2770 2005-02-06  Havoc Pennington  <hp@redhat.com>
2771
2772         * dbus/dbus-message-factory.c (generate_special): more tests
2773
2774         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
2775         array length that exceeds the maximum
2776
2777 2005-02-05  Havoc Pennington  <hp@redhat.com>
2778
2779         * dbus/dbus-message-factory.c (generate_special): more test cases,
2780         increasing coverage
2781
2782         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
2783         reason why a signature was invalid
2784
2785         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
2786         skip the length of the string before we look at it in validation
2787
2788         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
2789         equal_substring
2790
2791         * dbus/dbus-message.c (_dbus_message_loader_new): default
2792         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
2793
2794 2005-02-05  Havoc Pennington  <hp@redhat.com>
2795
2796         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
2797         if the signature of a variant was empty
2798         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
2799         struct with no element type)
2800
2801         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
2802         mangled messages to break things
2803
2804 2005-02-04  Havoc Pennington  <hp@redhat.com>
2805
2806         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
2807         g_quark_try_string() so it actually can return 0
2808         (dbus_g_proxy_connect_signal): ditto
2809
2810 2005-02-04  Havoc Pennington  <hp@redhat.com>
2811
2812         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
2813         bogus warning
2814         (tristring_from_message): assert cleanly on null path/interface
2815         (should not be possible though I decided later)
2816         (dbus_g_proxy_dispose): move proxy manager unregistration here
2817         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
2818         g_return_if_fail() checks
2819
2820 2005-02-04  Havoc Pennington  <hp@redhat.com>
2821
2822         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
2823
2824         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
2825         (with some minor changes)
2826
2827         * doc/dbus-specification.xml: add deprecated attribute to
2828         introspection format
2829
2830 2005-01-31  Havoc Pennington  <hp@redhat.com>
2831
2832         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
2833         think it's sort of right
2834
2835 2005-01-30  Havoc Pennington  <hp@redhat.com>
2836
2837         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
2838
2839 2005-01-30  Havoc Pennington  <hp@redhat.com>
2840
2841         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
2842
2843         * autogen.sh: change to autotools 1.9
2844
2845         * glib/dbus-gproxy.c: completely change how signals work
2846         (dbus_g_proxy_add_signal): new function to specify signature of a
2847         signal
2848         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
2849         and g_warning if the incoming message has the wrong signature.
2850
2851 2005-01-30  Havoc Pennington  <hp@redhat.com>
2852
2853         * tools/dbus-names-model.c (have_names_notify): fix this
2854
2855         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
2856         up the string array handling a bit 
2857
2858 2005-01-30  Havoc Pennington  <hp@redhat.com>
2859
2860         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
2861         (dbus_g_pending_call_cancel): new function
2862
2863         * dbus/dbus-glib.h: move GType decls for connection/message here;
2864         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
2865         here, just kind of rationalizing how we handle all that
2866
2867         * tools/dbus-names-model.c: new file for a tree model listing the
2868         services on a bus
2869
2870         * tools/dbus-tree-view.c (model_new): use proper typing on the
2871         model rows
2872
2873 2005-01-30  Havoc Pennington  <hp@redhat.com>
2874
2875         * glib/dbus-gmain.c: add a custom GSource back that just checks
2876         whether the message queue has anything in it; otherwise, there are 
2877         cases where we won't see messages in the queue since there was no 
2878         IO visible to the glib main loop
2879
2880         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
2881         increase default message timeout to 25 seconds
2882
2883 2005-01-30  Havoc Pennington  <hp@redhat.com>
2884
2885         * test/glib/test-profile.c (no_bus_stop_server): remove the
2886         warning about the g_warning that I just fixed
2887
2888         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
2889         custom source, seems to be a lot easier to understand and work
2890         better.
2891
2892 2005-01-30  Havoc Pennington  <hp@redhat.com>
2893
2894         I think this main loop thing is conceptually broken, but here are 
2895         some band aids. I'll maybe rewrite it in a minute.
2896         
2897         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
2898         custom GSource, so don't pass it in; confusing
2899         (gsource_server_finalize, gsource_connection_finalize): add
2900         finalize handlers that remove all the watches.  
2901
2902 2005-01-30  Havoc Pennington  <hp@redhat.com>
2903
2904         * glib/dbus-gobject.c (introspect_properties): fix the XML
2905         generated
2906
2907         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
2908         which effectively detects the use of freed messages
2909
2910         * glib/dbus-gobject.c (handle_introspect): modify and return the
2911         reply message instead of the incoming message
2912
2913         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
2914         gee, maybe it should SEND THE XML instead of just making a string
2915         and freeing it again ;-)
2916
2917         * tools/dbus-print-message.c (print_message): improve printing of
2918         messages
2919
2920         * configure.in: add debug-glib.service to the output
2921
2922 2005-01-30  Havoc Pennington  <hp@redhat.com>
2923
2924         dbus-viewer introspected and displayed the bus driver
2925         
2926         * dbus/dbus-object-tree.c 
2927         (object_tree_test_iteration): add tests for a handler registered on "/"
2928
2929         * dbus/dbus-object-tree.c
2930         (_dbus_decompose_path): fix to handle path "/" properly
2931         (run_decompose_tests): add tests for path decomposition
2932         
2933         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
2934         properly
2935
2936         * glib/dbus-gobject.c (handle_introspect): fix quotes
2937
2938         * test/glib/run-test.sh: support launching the bus, then running
2939         dbus-viewer
2940
2941         * test/glib/test-service-glib.c (main): put in a trivial gobject
2942         subclass and register it on the connection
2943
2944         * bus/driver.c (bus_driver_handle_introspect): implement
2945         introspection of the bus driver service
2946
2947         * dbus/dbus-protocol.h: add #defines for the XML namespace,
2948         identifiers, doctype decl
2949
2950         * bus/driver.c (bus_driver_handle_get_service_owner): handle
2951         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
2952         returning the service unchanged.
2953         (bus_driver_handle_message): remove old check for reply_serial in
2954         method calls, now the message type deals with that
2955         (bus_driver_handle_message): handle NULL interface
2956
2957         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
2958
2959         * glib/dbus-gloader-expat.c (description_load_from_string): allow
2960         -1 for len
2961
2962         * tools/dbus-viewer.c: add support for introspecting a service on
2963         a bus
2964
2965         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
2966         (dbus_g_pending_call_unref): add
2967
2968 2005-01-29  Havoc Pennington  <hp@redhat.com>
2969
2970         * tools/dbus-tree-view.c: add support for displaying properties.
2971         (run dbus-viewer with an introspect xml file as arg, then resize
2972         the window so the tree elements show up, not sure what that is)
2973
2974         * glib/dbus-gobject.c (handle_introspect): return
2975         org.freedesktop.Properties and org.freedesktop.Introspectable
2976         interfaces when we are introspected.
2977
2978         * doc/dbus-specification.xml: allow empty interface name when 
2979         Get/Set a property
2980
2981 2005-01-29  Havoc Pennington  <hp@redhat.com>
2982
2983         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
2984         though it uses glib, it could be extended for any binding in
2985         principle
2986
2987         * glib/dbus-gobject.c (gobject_message_function): change to the
2988         new way properties work
2989
2990         * dbus/dbus-protocol.h: add the new interfaces
2991
2992         * doc/dbus-specification.xml: document the introspection format,
2993         Introspectable interface, and add an org.freedesktop.Properties
2994         interface.
2995
2996         * glib/dbus-gparser.c: add support for a <property> element
2997
2998         * glib/dbus-gidl.c: add PropertyInfo
2999
3000         * glib/dbus-gobject.c (handle_introspect): put the outermost
3001         <node> outside the signal and property descriptions.
3002         (introspect_properties): export properties as <property> rather
3003         than as method calls
3004
3005 2005-01-28  Havoc Pennington  <hp@redhat.com>
3006
3007         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
3008         related to authentication protocol
3009
3010 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
3011
3012         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
3013                 - BUS_ACTIVATION -> BUS_STARTER
3014                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
3015                 - class MessageIter (__init__): Added recursion checking 
3016                 so we throw a nice error instead of just disconnecting from the
3017                 bus.
3018                 (get): Added arg_type parameter for recursion.
3019                 Removed the nil type
3020                 Added signiture type placeholder (not implemented)
3021                 Added struct type placeholder (not implemented)
3022                 Added varient type placeholder (not implemented)
3023                 Commented out dict type for now     
3024                 (get_element_type): renamed from get_array_type
3025                 (get_*): changed to use the dbus_message_iter_get_basic API
3026                 (get_*_array): removed in favor of recursive get_array method
3027                 (get_array): new recursive method which calls get to marshal
3028                 the elements of the array
3029                 (value_to_dbus_sig): New method returns the corrasponding
3030                 dbus signiture to a python value
3031                 (append): Comment out dict handling for now
3032                 Handle lists with the new recursive API
3033                 Comment out None handling for now
3034                 (append_nil): removed
3035                 (append_*): changed to use dbus_message_iter_append_basic API
3036                 (append_*_array): removed in favor of recursive append_array 
3037                 method
3038                 (__str__): Make it easier to print out recursive iterators
3039                 for debugging
3040                 - class Message (__str__): moved type inspection to the
3041                 MessageIter class' __str__ method
3042                 (get_iter): Added an append parameter wich defaults to False
3043                 If True use the new API's to create an append iterator
3044
3045         * python/dbus.py: Update to use new bindings API
3046                 - TYPE_ACTIVATION -> TYPE_STARTER
3047                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
3048                 - class ActivationBus -> class StarterBus
3049                 - class RemoteObject (__call__): get an append iterator
3050                 - (_dispatch_dbus_method_call): get an append iterator
3051                 - class Object (emit_signal): get an append iterator
3052
3053         * python/examples/: Fixed up the examples to work with the new API
3054                 
3055 2005-01-28  Joe Shaw  <joeshaw@novell.com>
3056
3057         * configure.in: Bump version up to 0.30.
3058
3059         * HACKING: Add a release item to bump the version number up after 
3060         a release.
3061
3062 2005-01-28  Havoc Pennington  <hp@redhat.com>
3063
3064         * doc/dbus-specification.xml: update to describe 16-bit types and
3065         dict entries
3066
3067         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
3068         assertion
3069
3070         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
3071         type
3072
3073         * dbus/dbus-marshal-recursive.c: implement
3074
3075 2005-01-27  Havoc Pennington  <hp@redhat.com>
3076
3077         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
3078
3079         * configure.in: find the right type for 16 and 32 bit ints as well
3080         as 64
3081
3082         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
3083         the 16-bit types so people don't have to stuff them in 32-bit or
3084         byte arrays.
3085
3086 2005-01-27  Havoc Pennington  <hp@redhat.com>
3087
3088         * dbus/dbus-message.c: byteswap the message if you init an
3089         iterator to read/write from it
3090         
3091         * dbus/dbus-marshal-byteswap.c: new file implementing 
3092         _dbus_marshal_byteswap()
3093
3094         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
3095
3096 2005-01-26  Havoc Pennington  <hp@redhat.com>
3097         
3098         * dbus/dbus-marshal-validate-util.c: break this out (and fix
3099         build, apparently - nobody noticed?)
3100         
3101 2005-01-26  Havoc Pennington  <hp@redhat.com>
3102
3103         * dbus/dbus-marshal-recursive.h: remove todo comment
3104
3105 2005-01-25  Joe Shaw  <joeshaw@novell.com>
3106
3107         * Land the mono binding changes to conform to the new APIs.
3108
3109         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
3110         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
3111
3112         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
3113         type code as a string.
3114         (InitAppending): Rename dbus_message_append_iter_init() to
3115         dbus_message_iter_init_append().
3116
3117         * mono/BusDriver.cs: Rename ServiceEventHandler to
3118         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
3119         Rename ServiceOwnerChanged to NameOwnerChanged.
3120
3121         * mono/Connection.cs: Rename BaseService to UniqueName, and the
3122         underlying C call.
3123
3124         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
3125
3126         * mono/Service.cs: Rename Exists to HasOwner, internally rename
3127         dbus_bus_acquire_service() to dbus_bus_request_name().
3128
3129         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
3130         of Type.UnderlyingSystemType to get the correct element type for
3131         the array.
3132         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
3133         dbus_message_get_{element|arg}_type() instead of
3134         dbus_message_iter_init_array_iterator().
3135         (Append): Replace dbus_message_iter_append_array() with
3136         dbus_message_iter_open_container() and
3137         dbus_message_iter_close_container().
3138
3139         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
3140         types have been removed.
3141         
3142         * mono/DBusType/*.cs: Replace calls of
3143         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
3144         but specify the type in the DllImport extern declaration.  Ditto
3145         for dbus_message_iter_append_[type]() ->
3146         dbus_message_iter_append_basic().
3147
3148         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
3149         NameOwnerChangedHandler.
3150
3151 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
3152
3153         * python/dbus_bindings.pyx.in: Rename of methods and bindings
3154                 - get_base_service -> get_unique_name
3155                 - bus_get_base_service -> bus_get_unique_name
3156                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
3157                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
3158                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
3159                 - bus_activate_service -> bus_start_service_by_name
3160                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
3161                 - bus_acquire_service -> bus_request_name
3162                 - dbus_bus_acquire_service -> dbus_bus_request_name
3163                 - bus_service_exists -> bus_name_has_owner
3164                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
3165
3166         * python/dbus.py: Rename of methods
3167                 - activate_service -> start_service_by_name
3168                 - bus_acquire_service -> bus_request_name
3169                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
3170                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
3171
3172         
3173 2005-01-24  Joe Shaw  <joeshaw@novell.com>
3174
3175         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
3176         signature for the method that can't be found.
3177
3178         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
3179         the message has any arguments, we need to call
3180         _dbus_type_reader_get_current_type(), not
3181         _dbus_type_reader_has_next().
3182
3183 2005-01-24  Havoc Pennington  <hp@redhat.com>
3184
3185         * dbus/dbus-message-factory.c: more testing of message validation
3186
3187         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
3188         header
3189
3190 2005-01-23  Havoc Pennington  <hp@redhat.com>
3191
3192         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
3193         get this all working, not many tests in the framework yet though
3194
3195 2005-01-22  Havoc Pennington  <hp@redhat.com>
3196
3197         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
3198         tutorial, based on work from David Wheeler.
3199
3200 2005-01-21  Havoc Pennington  <hp@redhat.com>
3201
3202         * dbus/dbus-bus.c: add more return_if_fail checks
3203
3204         * dbus/dbus-message.c (load_message): have the "no validation"
3205         mode (have to edit the code to toggle the mode for now though)
3206
3207         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
3208         skips all validation; I want to use this at least for benchmark
3209         baseline, I'm not sure if it should be a publicly-available switch.
3210
3211 2005-01-21  Havoc Pennington  <hp@redhat.com>
3212
3213         * glib/dbus-gmain.c: don't put the GLib bindings in the same
3214         toplevel doxygen group as the low-level API stuff
3215
3216         * dbus/dbus.h: note that libdbus is the low-level API
3217
3218 2005-01-20  Havoc Pennington  <hp@redhat.com>
3219
3220         * update-dbus-docs.sh: script to update docs on the web site, only
3221         works for me though. neener.
3222
3223 2005-01-20  Havoc Pennington  <hp@redhat.com>
3224
3225         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
3226         code can reveal bugs in it
3227
3228 2005-01-20  Havoc Pennington  <hp@redhat.com>
3229
3230         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
3231         select() version, patches from Tor Lillqvist
3232
3233 2005-01-20  Havoc Pennington  <hp@redhat.com>
3234
3235         * doc/dbus-tutorial.xml: replace > with &gt;
3236
3237         * bus/services.c (bus_registry_acquire_service): validate the name
3238         and return a better error if it's no good.
3239
3240         * doc/dbus-specification.xml: note NO_AUTO_START change
3241
3242         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
3243         from AUTO_START, we're toggling the default
3244
3245         * bus/dispatch.c: adapt the tests to change of auto-start default
3246
3247 2005-01-18  Havoc Pennington  <hp@redhat.com>
3248
3249         * rename dbus-daemon-1 to dbus-daemon throughout
3250
3251 2005-01-18  Havoc Pennington  <hp@redhat.com>
3252
3253         * Throughout, grand renaming to strip out the use of "service",
3254         just say "name" instead (or "bus name" when ambiguous).  Did not
3255         change the internal code of the message bus itself, only the
3256         programmer-facing API and messages.
3257         
3258         * doc/dbus-specification.xml: further update the message bus section
3259         
3260         * bus/config-parser.c (all_are_equiv): fix bug using freed string
3261         in error case
3262
3263 2005-01-17  Havoc Pennington  <hp@redhat.com>
3264
3265         * dbus/dbus-types.h: remove 16-bit types since we don't use them
3266         ever
3267
3268         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
3269         "invalid name character" not only non-ASCII
3270
3271         * doc/dbus-specification.xml: further update spec, message bus 
3272         parts are still out-of-date but the marshaling etc. stuff is now
3273         accurate-ish
3274
3275 2005-01-17  Havoc Pennington  <hp@redhat.com>
3276
3277         * doc/dbus-specification.xml: partially update spec
3278
3279 2005-01-17  Havoc Pennington  <hp@redhat.com>
3280
3281         * Throughout, align variant bodies according to the contained
3282         type, rather than always to 8. Should save a fair bit of space in
3283         message headers.
3284         
3285         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
3286         fix handling of case where p == end
3287
3288         * doc/TODO: remove the dbus_bool_t item and variant alignment items
3289
3290 2005-01-17  Havoc Pennington  <hp@redhat.com>
3291
3292         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
3293
3294         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
3295         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
3296         are marshaling/unmarshaling a boolean.
3297
3298 2005-01-16  Havoc Pennington  <hp@redhat.com>
3299
3300         This is about it on what can be disabled/deleted from libdbus
3301         easily, back below 150K anyhow. Deeper cuts are more work than 
3302         just turning the code off as I've done here.
3303         
3304         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
3305         signed int convenience funcs
3306
3307         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
3308         verbose mode
3309
3310         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
3311         things out of libdbus
3312
3313         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
3314         
3315         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
3316         tests-enabled-only, though it should probably be deleted)
3317
3318         * dbus/dbus-message-util.c: same stuff
3319
3320         * dbus/dbus-auth-util.c: same stuff
3321
3322 2005-01-16  Havoc Pennington  <hp@redhat.com>
3323
3324         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
3325
3326         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
3327         way for stripping down dbus-userdb.c stuff included in libdbus.
3328         Rename _dbus_parse_uid for consistency.
3329
3330 2005-01-16  Havoc Pennington  <hp@redhat.com>
3331
3332         * dbus/dbus-internals.c (_dbus_real_assert): print the function
3333         name the assertion failed in
3334
3335         * dbus/dbus-internals.h (_dbus_return_if_fail) 
3336         (_dbus_return_val_if_fail): assert that the name of the function
3337         containing the check doesn't start with '_', since we only want to 
3338         use checks on public functions
3339         
3340         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
3341         checks to assertions
3342
3343         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
3344         change checks to asserts for private function
3345
3346         * dbus/dbus-message.c (_dbus_message_set_serial): checks
3347         to asserts for private function
3348
3349         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
3350         broken assertion that was breaking make check
3351         (_dbus_type_reader_array_is_empty): remove this rather than fix
3352         it, was only used in assertions
3353
3354 2005-01-16  Havoc Pennington  <hp@redhat.com>
3355
3356         * test/unused-code-gc.py: hacky script to find code that's used
3357         only by the bus (not libdbus) or used only by tests or not used at
3358         all. It has some false alarms, but looks like we can clean up a
3359         lot of size from libdbus.
3360
3361         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
3362         dbus/Makefile.am: initially move 10K of binary size out of libdbus
3363         
3364 2005-01-16  Havoc Pennington  <hp@redhat.com>
3365
3366         * Add and fix docs according to Doxygen warnings throughout
3367         source.
3368         
3369         * dbus/dbus-marshal-recursive.c
3370         (_dbus_type_reader_array_is_empty): change this to just call
3371         array_reader_get_array_len() and make it static
3372
3373         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
3374         from get_array_type
3375         (dbus_message_iter_init_append): rename from append_iter_init
3376
3377         * dbus/dbus-marshal-recursive.c
3378         (_dbus_type_reader_get_element_type): rename from
3379         _dbus_type_reader_get_array_type
3380
3381 2005-01-15  Havoc Pennington  <hp@redhat.com>
3382
3383         * test/glib/test-profile.c (with_bus_server_filter): fix crash
3384
3385         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
3386         when DBUS_DISABLE_ASSERT
3387         (_dbus_marshal_set_basic): be sure we align for the string length
3388
3389         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
3390         this look faster
3391
3392         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
3393         inline macro version
3394         (_dbus_string_set_byte): provide inline macro version
3395
3396 2005-01-15  Havoc Pennington  <hp@redhat.com>
3397
3398         * Land the new message args API and type system.
3399
3400         This patch is huge, but the public API change is not 
3401         really large. The set of D-BUS types has changed somewhat, 
3402         and the arg "getters" are more geared toward language bindings;
3403         they don't make a copy, etc.
3404
3405         There are also some known issues. See these emails for details
3406         on this huge patch:
3407         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
3408         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
3409         
3410         * dbus/dbus-marshal-*: all the new stuff
3411
3412         * dbus/dbus-message.c: basically rewritten
3413
3414         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
3415         freed blocks to be all non-nul bytes so using freed memory is less
3416         likely to work right
3417
3418         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
3419         DBUS_FAIL_MALLOC=N environment variable, so you can do
3420         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
3421         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
3422         thorough.
3423
3424         * qt/message.cpp: port to the new message args API
3425         (operator<<): use str.utf8() rather than str.unicode()
3426         (pretty sure this is right from the Qt docs?)
3427
3428         * glib/dbus-gvalue.c: port to the new message args API
3429
3430         * bus/dispatch.c, bus/driver.c: port to the new message args API
3431
3432         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
3433         "locked" flag to TRUE and align_offset to 0; I guess we never
3434         looked at these anyhow, but seems cleaner.
3435
3436         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
3437         move allocation padding macro to this header; use it to implement
3438         (_DBUS_STRING_STATIC): ability to declare a static string.
3439
3440         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
3441         change to return TRUE if the interface is not set.
3442
3443         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
3444         to dbus-marshal-validate.[hc]
3445
3446         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
3447         dbus-internals.c
3448
3449         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
3450         to dbus-marshal-*.[hc]
3451
3452         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
3453         function here from dbus-marshal.c
3454
3455 2005-01-12  Joe Shaw  <joeshaw@novell.com>
3456
3457         * NEWS: Update for 0.23.
3458
3459         * configure.in: Release 0.23.
3460
3461 2005-01-12  Joe Shaw  <joeshaw@novell.com>
3462
3463         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
3464         dbus DLL with --debug.  Clean up after the .mdb files this leaves
3465         behind.
3466
3467         * mono/doc/Makefile.am: Need to uninstall the docs on "make
3468         uninstall"
3469
3470         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
3471         is an enum, get the enum's underlying type.  Another mono
3472         1.1.3 fix.
3473
3474 2005-01-11  Joe Shaw  <joeshaw@novell.com>
3475
3476         Patch from Sjoerd Simons <sjoerd@luon.net>
3477
3478         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
3479         DESTDIR.  It breaks stuff.
3480
3481 2005-01-11  Joe Shaw  <joeshaw@novell.com>
3482
3483         Patch from Tambet Ingo <tambet@ximian.com>
3484
3485         * mono/DBusType/Array.cs (Get): Get the underlying element type by
3486         calling type.GetElementType().  The code previously depended on
3487         broken Mono behavior, which was fixed in Mono 1.1.3.
3488
3489         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
3490         Activator.CreateInstance() so that the class's constructor is
3491         called with the right parameters.
3492
3493 2005-01-11  Joe Shaw  <joeshaw@novell.com>
3494
3495         Patch from Timo Teräs <ext-timo.teras@nokia.com>
3496
3497         * dbus/dbus-connection.c
3498         (_dbus_connection_queue_received_message_link): Call
3499         _dbus_connection_remove_timeout() instead of the _locked()
3500         variant, since it's always called from
3501         _dbus_connection_handle_watch(), which handles the locking.
3502         Removed the _locked() variant since it's no longer used.
3503
3504 2005-01-03  Havoc Pennington  <hp@redhat.com>
3505
3506         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
3507         return
3508         
3509 2004-12-26  Havoc Pennington  <hp@redhat.com>
3510
3511         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
3512
3513 2005-01-03  Havoc Pennington  <hp@redhat.com>
3514
3515         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
3516         floating point
3517
3518         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
3519
3520 2005-01-02  Havoc Pennington  <hp@redhat.com>
3521
3522         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
3523
3524 2005-01-01  Havoc Pennington  <hp@redhat.com>
3525
3526         * configure.in: add -Wfloat-equal
3527
3528 2005-01-01  Havoc Pennington  <hp@redhat.com>
3529
3530         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
3531         for a variety of reasons '==' doesn't do this.
3532
3533 2004-12-31  Havoc Pennington  <hp@redhat.com>
3534
3535         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
3536         I keep wishing I had
3537
3538 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
3539
3540         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
3541
3542 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
3543
3544         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
3545         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
3546         dbus-protocol.h.  Because they are defines and not enums they are not
3547         autogenerated.
3548
3549 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
3550
3551         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
3552         dbus_bus_activate_service
3553
3554         * python/dbus.py (Bus.activate_service): activate a service on the
3555         bus.
3556
3557 2004-12-24  Havoc Pennington  <hp@redhat.com>
3558
3559         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
3560         file format has also changed and I haven't adapted to that yet
3561         
3562         * Makefile.am: load .gcno files from latest gcc
3563
3564 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
3565         * Patch from Rob Taylor <robtaylor@fastmail.fm>
3566
3567         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
3568         lowlevel binding
3569
3570         * python/dbus.py (get_unix_user): Added binding to 
3571         call dbus_bindings.bus_get_unix_user
3572
3573         * python/extract.py: Modified the proto_pat regex to
3574         handle unsigned long
3575
3576 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3577
3578         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
3579         better POSIX compliance.
3580
3581 2004-12-19  Havoc Pennington  <hp@redhat.com>
3582
3583         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
3584         (_dbus_string_insert_8_aligned): new functions
3585
3586         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
3587
3588 2004-12-18  Havoc Pennington  <hp@redhat.com>
3589
3590         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
3591         macro
3592
3593         * dbus/dbus-message.c: fix a comment, and add a still-unused
3594         not-implemented function
3595
3596         * dbus/dbus-marshal.h: fix comment
3597
3598         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
3599
3600 2004-12-17  Joe Shaw  <joeshaw@novell.com>
3601
3602         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
3603         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
3604         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
3605         Type.UnderlyingSystemType to get the actual system type
3606         underneath.  This code previously depended on the broken Mono
3607         behavior, which was fixed in 1.1.3.
3608
3609 2004-11-27  Havoc Pennington  <hp@redhat.com>
3610
3611         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
3612         are disabled
3613         (_dbus_string_get_const_data): inline when asserts are disabled
3614
3615         * dbus/dbus-message.c: record the _dbus_current_generation of
3616         creation so we can complain if dbus_shutdown() is used improperly.
3617         Do this only if checks are enabled.
3618
3619         * dbus/dbus-connection.c: ditto
3620         
3621 2004-11-26  Havoc Pennington  <hp@redhat.com>
3622
3623         * test/glib/test-profile.c: add with_bus mode to profile echoes
3624         that go through the bus.
3625
3626         * test/glib/run-test.sh: add ability to run test-profile
3627
3628         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
3629         config file reload.
3630
3631 2004-11-26  Havoc Pennington  <hp@redhat.com>
3632
3633         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
3634         thing was implemented
3635
3636 2004-11-26  Havoc Pennington  <hp@redhat.com>
3637
3638         * test/glib/test-profile.c: tweak a bit, add support for some
3639         made-up minimal malloc overhead with plain sockets, since in 
3640         real life some sort of buffers are unavoidable thus we could 
3641         count them in the theoretical best case
3642
3643 2004-11-26  Havoc Pennington  <hp@redhat.com>
3644
3645         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
3646         where I was trying to cache one too many messages
3647
3648 2004-11-26  Havoc Pennington  <hp@redhat.com>
3649
3650         * dbus/dbus-message.c: reimplement message cache as an array which 
3651         makes the cache about twice as fast and saves maybe 1.5% overall
3652
3653 2004-11-26  Havoc Pennington  <hp@redhat.com>
3654
3655         * dbus/dbus-threads.c (init_global_locks): forgot to put the
3656         message cache lock here
3657
3658 2004-11-26  Havoc Pennington  <hp@redhat.com>
3659
3660         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
3661         the "char byte_order" next to each other to save 4 bytes
3662         (dbus_message_new_empty_header): reduce preallocation, since the
3663         message cache should achieve a similar effect
3664         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
3665         message cache that keeps a few DBusMessage around in a pool,
3666         another 8% speedup or so.
3667
3668         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
3669
3670 2004-11-25  Havoc Pennington  <hp@redhat.com>
3671
3672         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
3673         to write, without reading or blocking, try it before the poll()
3674         and skip the poll() if nothing remains to write. This is about a
3675         3% speedup in the echo client/server
3676
3677 2004-11-25  Havoc Pennington  <hp@redhat.com>
3678
3679         The primary change here is to always write() once before adding
3680         the write watch, which gives us about a 10% performance increase.
3681         
3682         * dbus/dbus-transport-unix.c: a number of modifications to cope
3683         with removing messages_pending
3684         (check_write_watch): properly handle
3685         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
3686         messages_pending stuff
3687         (check_read_watch): properly handle WAITING_FOR_MEMORY and
3688         AUTHENTICATED cases
3689         (unix_handle_watch): after writing, see if the write watch can be
3690         removed
3691         (unix_do_iteration): assert that write_watch/read_watch are
3692         non-NULL rather than testing that they aren't, since they 
3693         aren't allowed to be NULL. check_write_watch() at the end so 
3694         we add the watch if we did not finish writing (e.g. got EAGAIN)
3695
3696         * dbus/dbus-transport-protected.h: remove messages_pending call,
3697         since it resulted in too much inefficient watch adding/removing; 
3698         instead we now require that the transport user does an iteration 
3699         after queueing outgoing messages, and after trying the first
3700         write() we add a write watch if we got EAGAIN or exceeded our 
3701         max bytes to write per iteration setting
3702
3703         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
3704         function
3705
3706         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
3707         freed and then accessed, valgrind flagged this bug, fix it
3708
3709         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
3710         as the last valid field plus 1, where really it is equal to the
3711         last valid field. Corrects some message corruption issues.
3712
3713         * dbus/dbus-mainloop.c: verbosity changes
3714
3715         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
3716         instead of aborting in one of the test codepaths
3717
3718         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
3719         caused not printing the pid ever again if a verbose was missing
3720         the newline at the end
3721         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
3722
3723         * dbus/dbus-connection.c: verbosity changes; 
3724         (dbus_connection_has_messages_to_send): new function
3725         (_dbus_connection_message_sent): no longer call transport->messages_pending
3726         (_dbus_connection_send_preallocated_unlocked): do one iteration to
3727         try to write() immediately, so we can avoid the write watch. This
3728         is the core purpose of this patchset
3729         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
3730         dump the outgoing message queue, so nobody will get confused
3731         trying to send them or thinking stuff is pending to be sent
3732
3733         * bus/test.c: verbosity changes
3734
3735         * bus/driver.c: verbosity/assertion changes
3736
3737         * bus/dispatch.c: a bunch of little tweaks to get it working again
3738         because this patchset changes when/where you need to block.
3739
3740 2004-11-23  Havoc Pennington  <hp@redhat.com>
3741
3742         * test/glib/test-profile.c: modify to accept a plain_sockets
3743         argument in which case it will bench plain sockets instead of
3744         libdbus, for comparison purposes.
3745
3746 2004-11-22  Havoc Pennington  <hp@redhat.com>
3747
3748         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
3749         threads for more time, so sysprof can get a grip on it.
3750
3751         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
3752         pointless variable
3753
3754 2004-11-13  Havoc Pennington  <hp@redhat.com>
3755
3756         * test/glib/test-profile.c: fix this thing up a bit
3757
3758         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
3759         preallocation sizes by a fair bit; not sure if this will be an
3760         overall performance win or not, but it does reduce reallocs.
3761
3762         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
3763         the test hack that forced constant realloc if asserts are
3764         disabled, so we can profile sanely. Sprinkle in some
3765         _DBUS_UNLIKELY() which are probably pointless, but before I
3766         noticed the real performance problem I put them in.
3767         (_dbus_string_validate_utf8): micro-optimize this thing a little
3768         bit, though callgrind says it didn't help; then special-case
3769         ascii, which did help a lot; then be sure we detect nul bytes as
3770         invalid, which is a bugfix.
3771         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
3772         superstition; use memset to nul the padding instead of a manual
3773         loop.
3774         (_dbus_string_get_length): inline this as a
3775         macro; it showed up in the profile because it's used for loop
3776         tests and so forth
3777
3778 2004-11-10  Colin Walters  <walters@verbum.org>
3779
3780         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
3781         for extra paranoia.
3782
3783 2004-11-09  Colin Walters  <walters@verbum.org>
3784
3785         * dbus/dbus-string.c (_dbus_string_get_length): New
3786         function, writes DBusString to C buffer.
3787
3788         * dbus/dbus-string.h: Prototype it.
3789
3790         * dbus/dbus-message.c (dbus_message_type_to_string): New
3791         function, converts message type into C string.
3792
3793         * dbus/dbus-message.h: Prototype it.
3794
3795         * bus/selinux.c (bus_selinux_check): Take source pid,
3796         target pid, and audit data.  Pass audit data to
3797         avc_has_perm.
3798         (log_audit_callback): New function, appends extra
3799         audit information.
3800         (bus_selinux_allows_acquire_service): Also take
3801         service name, add it to audit data.
3802         (bus_selinux_allows_send): Also take message
3803         type, interface, method member, error name,
3804         and destination, and add them to audit data.
3805         (log_cb): Initialize func_audit.
3806         
3807         * bus/selinux.h (bus_selinux_allows_acquire_service)
3808         (bus_selinux_allows_send): Update prototypes 
3809
3810         * bus/services.c (bus_registry_acquire_service): Pass
3811         service name to bus_selinux_allows_acquire_service.
3812
3813         * bus/bus.c (bus_context_check_security_policy): Pass
3814         additional audit data.  Move assignment of dest
3815         to its own line.
3816
3817 2004-11-07  Colin Walters  <walters@verbum.org>
3818
3819         * dbus/dbus-transport-unix.c (do_authentication): Always
3820         initialize auth_completed.
3821         
3822 2004-11-07  Colin Walters  <walters@verbum.org>
3823
3824         * bus/bus.c (load_config): Break into three
3825         separate functions: process_config_first_time_only,
3826         process_config_every_time, and process_config_postinit.
3827         (process_config_every_time): Move call of
3828         bus_registry_set_service_context_table into
3829         process_config_postinit.
3830         (process_config_postinit): New function, does
3831         any processing that needs to happen late
3832         in initialization (and also on reload).
3833         (bus_context_new): Instead of calling load_config,
3834         open config parser here and call process_config_first_time_only
3835         and process_config_every_time directly.  Later, after
3836         we have forked but before changing UID,
3837         invoke bus_selinux_full_init, and then call
3838         process_config_postinit.
3839         (bus_context_reload_config): As in bus_context_new,
3840         load parse file inside here, and call process_config_every_time
3841         and process_config_postinit.
3842
3843         * bus/services.h, bus/services.c
3844         (bus_registry_set_service_context_table): Rename
3845         from bus_registry_set_sid_table.  Take string hash from config
3846         parser, and convert them here into SIDs.
3847
3848         * bus/config-parser.c (struct BusConfigParser): Have
3849         config parser only store a mapping of service->context
3850         string.
3851         (merge_service_context_hash): New function.
3852         (merge_included): Merge context string hashes instead
3853         of using bus_selinux_id_table_union.
3854         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
3855         simply create a new string hash.
3856         (bus_config_parser_unref): Unref it.
3857         (start_selinux_child): Simply insert strings into hash,
3858         don't call bus_selinux_id_table_copy_over.
3859
3860         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
3861         (bus_selinux_id_table_copy_over): Delete.
3862
3863 2004-11-03  Colin Walters  <walters@verbum.org>
3864
3865         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
3866         variables.
3867         
3868 2004-11-03  Colin Walters  <walters@verbum.org>
3869
3870         * bus/test-main.c (test_pre_hook): Fix test logic,
3871         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
3872
3873 2004-11-02  Colin Walters  <walters@redhat.com>
3874
3875         * bus/selinux.c (bus_selinux_init): Split into two functions,
3876         bus_selinux_pre_init and bus_selinux_post_init.
3877         (bus_selinux_pre_init): Just determine whether SELinux is
3878         enabled.
3879         (bus_selinux_post_init): Do everything else.
3880
3881         * bus/main.c (main): Call bus_selinux_pre_init before parsing
3882         config file, and bus_selinux_post_init after.  This ensures that
3883         we don't lose the policyreload notification thread that
3884         bus_selinux_init created before forking previously.
3885         
3886         * bus/test-main.c (test_pre_hook): Update for split.
3887
3888 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
3889
3890         Patch from Johan Fischer <linux@fischaz.com>
3891         
3892         * mono/doc/Makefile.am (install-data-local): Added directory
3893         install for DESTDIR
3894
3895 2004-10-29  Colin Walters  <walters@redhat.com>
3896
3897         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
3898         parameter for fd to write pid to.       
3899
3900         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
3901         
3902         * bus/bus.c (bus_context_new): Pass print_pid_fd
3903         to _dbus_become_daemon (bug #1720)
3904
3905 2004-10-29  Colin Walters  <walters@redhat.com>
3906
3907         Patch from Ed Catmur <ed@catmur.co.uk>
3908
3909         * mono/doc/Makefile.am (install-data-local): Handle
3910         DESTDIR.
3911
3912 2004-10-29  Colin Walters  <walters@redhat.com>
3913
3914         * bus/.cvsignore, qt/.cvsignore: Update.
3915
3916 2004-10-29  Colin Walters  <walters@redhat.com>
3917
3918         Patch from Kristof Vansant <de_lupus@pandora.be>
3919
3920         * configure.in: Detect Slackware.
3921         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
3922         * bus/rc.messagebus.in: New file.
3923
3924 2004-10-29  Colin Walters  <walters@redhat.com>
3925
3926         * tools/dbus-monitor.c (filter_func): Return
3927         DBUS_HANDLER_RESULT_HANDLED in filter function
3928         for now.  See:
3929         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
3930
3931 2004-10-29  Colin Walters  <walters@redhat.com>
3932
3933         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
3934
3935         * bus/services.c (bus_registry_acquire_service): 
3936         Correctly retrieve service name from DBusString
3937         for printing.
3938
3939 2004-10-29  Colin Walters  <walters@redhat.com>
3940
3941         * dbus/dbus-glib.h: Update documentation to not
3942         refer to internal APIs.
3943
3944 2004-10-27  Joe Shaw  <joeshaw@novell.com>
3945
3946         * mono/Arguments.cs (GetDBusTypeConstructor):
3947         type.UnderlyingSystemType will return "System.Byte" if you do it
3948         on "byte[]", which is not what we want.  So check the type.IsArray
3949         property and use System.Array instead.
3950
3951 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
3952
3953         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
3954         the DBusUserInfo structure since this is passed into the function.
3955         This would cause a double free when the function that allocated
3956         the structure would try to free it when an error occured.
3957
3958         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
3959         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
3960         for service activation to avoid 32bit/64bit parallel install issues
3961
3962 2004-10-21  Colin Walters  <walters@verbum.org>
3963
3964         * AUTHORS: Fix my email address, the @gnu.org one
3965         has been bouncing for some time.  Also add J5.
3966         
3967 2004-10-21  Colin Walters  <walters@verbum.org>
3968
3969         * dbus/dbus-transport-unix.c (do_authentication): Return
3970         authentication status to callers.
3971         (unix_handle_watch): If we completed authentication this round,
3972         don't do another read.  Instead wait until the next iteration,
3973         after we've read any pending data in the auth buffer.
3974         (unix_do_iteration): Ditto.
3975         (unix_handle_watch): Updated for new do_authentication prototype.
3976
3977 2004-10-18  Colin Walters  <walters@verbum.org>
3978
3979         * bus/selinux.c (bus_selinux_enabled): Handle
3980         --disable-selinux case.
3981         
3982 2004-10-18  Colin Walters  <walters@verbum.org>
3983
3984         * bus/selinux.h: Add bus_selinux_enabled.
3985         
3986         * bus/selinux.c (bus_selinux_enabled): Implement it.
3987         
3988         * bus/config-parser.c (struct include): Add
3989         if_selinux_enabled member.
3990         (start_busconfig_child): Parse if_selinux_enabled
3991         attribute for include.
3992         (bus_config_parser_content): Handle it.
3993
3994         * bus/session.conf.in, bus/system.conf.in: Add
3995         inclusion of context mapping to default config files;
3996         conditional on SELinux being enabled.
3997         
3998         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
3999         
4000         * test/data/invalid-config-files/badselinux-1.conf, 
4001         test/data/invalid-config-files/badselinux-2.conf:
4002         Test files for bad syntax.
4003         
4004 2004-10-17  Colin Walters  <walters@verbum.org>
4005
4006         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
4007         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
4008         format specifier mismatches.
4009
4010 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4011
4012         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
4013         format string.
4014
4015         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
4016         pointer (bug #1540, Leonardo Boiko).
4017
4018 2004-09-28  Jon Trowbridge  <trow@ximian.com>
4019
4020         * mono/BusDriver.cs: Changed BusDriver struct to remove
4021         the ServiceCreated and ServiceDeleted events and replace them
4022         with the new ServiceOwnerChanged event.
4023
4024         * mono/example/BusListener.cs: Added a new example program,
4025         which listens for and reports any ServiceOwnerChanged events
4026         on the bus driver.
4027
4028         * mono/example/Makefile.am (DESTDIR): Build changes for the
4029         new BusListener.cs example.
4030
4031 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4032
4033         * bus/signals.c (bus_match_rule_parse): validate the components of
4034         match rules (bug #1439).
4035
4036         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
4037
4038 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4039
4040         * doc/dbus-specification.xml: document ServiceOwnerChanged
4041         signal.
4042         
4043         * bus/driver.c, bus/driver.h, bus/services.c: Use
4044         ServiceOwnerChanged signal instead of ServiceCreated and
4045         ServiceDeleted.
4046         
4047         * bus/dispatch.c: update testcase for the new signal.
4048
4049 2004-09-20  Jon Trowbridge  <trow@ximian.com>
4050
4051         Patch from Nat Friedman <nat@novell.com>
4052
4053         * mono/Makefile.am: A number of small build fixes to allow "make
4054         distcheck" to succeed.
4055
4056         * mono/example/Makefile.am: "make distcheck" fixes.
4057
4058         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
4059         key in @srcdir@.
4060
4061         * test/Makefile.am: "make distcheck" fixes.
4062
4063 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4064
4065         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
4066
4067         * doc/busconfig.dtd: update the DTD for the at_console attribute.
4068
4069         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
4070         messages after the first one (bug #1389).
4071         
4072         * bus/dispatch.c (check_double_hello_message): add a test case for
4073         the double hello message bug.
4074         (check_existent_service_activation): fix check of spawning error.
4075         
4076 2004-09-16  David Zeuthen  <david@fubar.dk>
4077
4078         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
4079
4080 2004-09-12  David Zeuthen  <david@fubar.dk>
4081
4082         Patch from Kay Sievers <kay.sievers@vrfy.org>
4083
4084         * bus/bus.c (bus_context_new):
4085         * bus/bus.h:
4086         * bus/main.c (usage)
4087         (main):
4088         Add commandline option --nofork to override configuration file
4089         setting.
4090
4091 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4092
4093         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
4094         compilers don't like it (bug #974).
4095
4096 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
4097
4098         * qt/connection.*: Applied patch by Jérôme Lodewyck
4099         <lodewyck@clipper.ens.fr> to integrate an existing
4100         connection into the Qt eventloop
4101
4102 2004-08-30  Jon Trowbridge  <trow@ximian.com>
4103
4104         * mono/BusDriver.cs: Added.  This is a class for interacting with
4105         the org.freedesktop.DBus service.
4106
4107         * mono/Message.cs: Added a mechanism to expose the message that is
4108         currently being dispatched via the static Message.Current
4109         property.  Added Message.Sender and Message.Destination
4110         properties.
4111
4112         * mono/Handler.cs: Expose the dispatched message via
4113         Message.Current when handling method calls.
4114
4115         * mono/Service.cs: Expose the dispatched message via
4116         Message.Current when handling signal emissions.
4117         
4118         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
4119         Connection.BaseService property.
4120
4121 2004-08-28  Havoc Pennington  <hp@redhat.com>
4122
4123         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
4124
4125         More fixes from Steve Grubb
4126         
4127         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
4128         (_dbus_listen_tcp_socket): fix fd leak
4129
4130         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
4131         EINTR to a bit lower in the code
4132
4133 2004-08-26  Jon Trowbridge  <trow@ximian.com>
4134
4135         * bus/driver.c (bus_driver_handle_service_exists): Respond with
4136         TRUE if we are inquiring about the existence of the built-in
4137         org.freedesktop.DBus service.
4138
4139 2004-08-25  John Palmieri  <johnp@redhat.com>
4140         * bus/config-parser.c:
4141         (struct PolicyType): Add POLICY_CONSOLE
4142         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
4143         (start_busconfig_child): Sets up console element when
4144         <policy at_console=""> is encountered in a policy file
4145         (append_rule_from_element): Convert console elements to console
4146         rules.
4147
4148         * bus/policy.c: 
4149         (bus_policy_create_client_policy): Add console rules to the client
4150         policy based on if the client is at the console
4151         (bus_policy_append_console_rule): New function for adding a
4152         console rule to a policy
4153         (bus_policy_merge): Handle console rule merging
4154
4155         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
4156         where we check for console user files
4157         
4158         * dbus/dbus-sysdeps.c:
4159         (_dbus_file_exists): New function which checks if the given
4160         file exists
4161         (_dbus_user_at_console): New function which does the system
4162         specific process of checking if the user is at the console
4163
4164         * dbus/dbus-userdb.c:
4165         (_dbus_is_console_user): New function converts a UID to user name
4166         and then calls the system specific _dbus_user_at_console to 
4167         see if the user is at the console and therefor a console user
4168
4169 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4170
4171         * bus/config-parser.c (set_limit):
4172         * bus/dbus-daemon-1.1.in:
4173         * test/data/valid-config-files/many-rules.conf: set the
4174         max_match_rules_per_connection limt from the config file. 
4175
4176         * doc/busconfig.dtd: update the DTD.
4177
4178         * bus/driver.c: remove some unused variables.
4179
4180 2004-08-24  Mikael Hallendal  <micke@imendio.com>
4181
4182         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
4183         it's been replaced by dbus_g_bus_get
4184
4185 2004-08-23  Colin Walters  <walters@redhat.com>
4186
4187         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4188
4189         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
4190
4191         * bus/selinux.c: Create a thread for policy reload notification.
4192         (bus_selinux_get_policy_root): Implement.
4193
4194         * bus/config-parser.c (start_busconfig_child)
4195         (bus_config_parser_content): Support SELinux-root relative
4196         inclusion.
4197
4198         * configure.in <HAVE_SELINUX>: Add -lpthread.
4199         
4200         * bus/test-main.c (test_pre_hook, test_post_hook): New.
4201         (test_post_hook): Move memory checking into here.
4202         (test_pre_hook, test_post_hook): Move SELinux checks in
4203         here, but conditional on a DBUS_TEST_SELINUX environment
4204         variable.  Unfortunately we can't run the SELinux checks
4205         as a normal user, since they won't have any permissions
4206         for /selinux.  So this will have to be tested manually
4207         for now, until we have virtualization for most of
4208         libselinux.
4209         
4210 2004-08-23  Havoc Pennington  <hp@redhat.com>
4211
4212         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
4213         drop supplementary groups, suggested by Steve Grubb
4214
4215 2004-08-20  Colin Walters  <walters@redhat.com>
4216
4217         * bus/config-parser.c (start_busconfig_child): Remove some unused
4218         variables.
4219         
4220         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
4221         warning.
4222
4223 2004-08-17  Joe Shaw  <joeshaw@novell.com>
4224
4225         * configure.in: If --enable-mono is passed in, if we can't find
4226         mono error out.
4227
4228         * mono/Makefile.am: Use /gacutil to install assemblies into the
4229         GAC and not /root.
4230
4231 2004-08-12  Havoc Pennington  <hp@redhat.com>
4232
4233         * NEWS: update for 0.22
4234
4235         * configure.in: release 0.22
4236
4237 2004-08-11  Colin Walters  <walters@redhat.com>
4238
4239         * tools/dbus-send.c (main, usage): Add --reply-timeout
4240         argument.
4241
4242 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4243
4244         * bus/bus.c (process_config_first_time_only): get rid of an unused
4245         DBusError that was causing a memoy leak (bug #989).
4246
4247         * dbus/dbus-keyring.c, dbus/dbus-message.c:
4248         fix compilation on Solaris/Forte C (bug #974)
4249
4250         * bus/main.c (main): plug two minuscule memleaks.
4251
4252 2004-08-10  Havoc Pennington  <hp@redhat.com>
4253
4254         * doc/dbus-tutorial.xml: add some more info on GLib bindings
4255
4256 2004-08-09  Havoc Pennington  <hp@redhat.com>
4257
4258         * COPYING: switch to Academic Free License version 2.1 instead of
4259         2.0, to resolve complaints about patent termination clause.
4260
4261 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
4262
4263         * README: added documentation for the --enable-python 
4264         configure switch.
4265
4266 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4267
4268         * bus/config-parser.c (bus_config_parser_new): fix an invalid
4269         _unref in the SELinux support.
4270
4271         * doc/busconfig.dtd: update DTD for SELinux support.
4272
4273         * bus/config-loader-libxml.c: fix error handler and parser
4274         initialisation/cleanup. OOM test now works with libxml2 HEAD.
4275
4276         * configure.in: remove the warning about libxml2.
4277
4278         * dbus/dbus-bus.c: silence doxygen warning.
4279
4280 2004-07-31  Colin Walters  <walters@redhat.com>
4281
4282         * configure.in: Move #error in SELinux check to its own line.
4283
4284 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4285
4286         * dbus/dbus-internals.h (_DBUS_SET_OOM):
4287         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
4288         dbus_error_set.
4289
4290         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
4291         broken by the change in the _SET_OOM macros.
4292
4293 2004-07-31  Colin Walters  <walters@redhat.com>
4294
4295         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
4296         BUS_SET_OOM.
4297
4298 2004-07-31  Colin Walters  <walters@redhat.com>
4299
4300         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
4301         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
4302         AC_MSG_CHECKING.
4303
4304 2004-07-24  Havoc Pennington  <hp@redhat.com>
4305
4306         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4307
4308         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
4309         functionality
4310
4311         * configure.in: add --enable-selinux
4312         
4313         * bus/policy.c (bus_policy_merge): add FIXME to a comment
4314
4315         * bus/main.c (main): initialize and shut down selinux
4316
4317         * bus/connection.c: store SELinux ID on each connection, to avoid 
4318         repeated getting of the string context and converting it into 
4319         an ID
4320
4321         * bus/bus.c (bus_context_get_policy): new accessor, though it
4322         isn't used
4323         (bus_context_check_security_policy): check whether the security
4324         context of sender connection can send to the security context of
4325         recipient connection
4326
4327         * bus/config-parser.c: add parsing for <selinux> and <associate>
4328         
4329         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
4330         implement dbus_connection_get_unix_fd()
4331
4332         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
4333         function, used by the selinux stuff
4334         
4335 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4336
4337         * bus/config-loader-libxml.c: complete the implementation of
4338         libxml backend for config file loader. Doesn't work with full OOM
4339         test yet. 
4340         
4341         * configure.in: change error when selecting libxml into a warning.
4342         
4343         * test/data/invalid-config-files: add two non-well-formed XML
4344         files. 
4345         
4346         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
4347         
4348         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
4349         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
4350         be necessary to read all the buffer. (bug #894)
4351
4352         * bus/activation.c (bus_activation_activate_service): fix a
4353         potential assertion failure (bug #896). Small optimization in the
4354         case of auto-activation messages.
4355
4356         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
4357         add test case for byte-through-vararg bug (#901). patch by Kimmo
4358         Hämäläinen. 
4359
4360 2004-07-28  Anders Carlsson  <andersca@gnome.org>
4361
4362         * python/dbus.py:
4363         * python/dbus_bindings.pyx.in:
4364         Add dbus.init_gthreads (), allow emit_signal to pass
4365         arguments to the signal.
4366         
4367 2004-07-24  Havoc Pennington  <hp@redhat.com>
4368
4369         * AUTHORS: add some people, not really comprehensively, let me
4370         know if I missed you
4371
4372 2004-07-24  Havoc Pennington  <hp@redhat.com>
4373
4374         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
4375         Owen
4376
4377         * test/Makefile.am (DIST_SUBDIRS): here also
4378
4379 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4380
4381         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
4382         breaking build on Solaris, reported by Farhad Saberi on the ML.
4383
4384         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
4385         va_arg invocation to account for integer promotion in the case of
4386         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
4387
4388         * bus/services.c (bus_service_remove_owner): fix bug #902, use
4389         _dbus_list_get_first_link, not _dbus_list_get_first.
4390
4391         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
4392
4393         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
4394         handler functions so that the asserts in _dbus_object_subtree_unref
4395         do not fail.
4396
4397         * dbus/dbus-transport-unix.c (do_reading):
4398         _dbus_transport_queue_messages return value is of type
4399         dbus_bool_t, not DBusDispatchStatus.
4400         
4401 2004-07-19  David Zeuthen  <david@fubar.dk>
4402
4403         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
4404
4405         * bus/dispatch.c:
4406         (check_get_connection_unix_user): Debug says GetProperty; but the
4407         method is called GetConnectionUnixUser
4408         (check_get_connection_unix_process_id): New function
4409         (bus_dispatch_test): Actually call check_get_connection_unix_user();
4410         also call check_get_connection_unix_process_id()
4411         
4412         * bus/driver.c:
4413         (bus_driver_handle_get_connection_unix_process_id): New function,
4414         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
4415         interface
4416         
4417         * dbus/dbus-auth.c:
4418         (handle_server_data_external_mech): Set pid from the credentials
4419         obtained from the socket
4420         
4421         * dbus/dbus-connection.c:
4422         (dbus_connection_get_unix_process_id): New function
4423         
4424         * dbus/dbus-connection.h: 
4425         Add prototype for dbus_connection_get_unix_process_id
4426         
4427         * dbus/dbus-transport.c:
4428         (_dbus_transport_get_unix_process_id): New function
4429         
4430         * dbus/dbus-transport.h:
4431         Add prototype for _dbus_transport_get_unix_process_id
4432         
4433 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4434
4435         * dbus/dbus-message.c: Message counter fix, patch by Christian
4436         Hammond <chipx86@gnupdate.org>
4437
4438 2004-07-18  Seth Nickell  <seth@gnome.org>
4439
4440         * python/dbus.py:
4441         * python/dbus_bindings.pyx.in:
4442         * python/tests/test-client.py:
4443
4444         Add dbus.ByteArray and dbus_bindings.ByteArray
4445         types so that byte streams can be passed back.
4446
4447         Give jdahlin the heaps of credit that are so
4448         rightfully his.
4449         
4450 2004-07-12  Seth Nickell  <seth@gnome.org>
4451
4452         * python/dbus.py:
4453
4454         Add message argument to the default object_method_handler
4455         function.
4456         
4457         * python/dbus_bindings.pyx.in:
4458
4459         Automatically return NIL when passed an empty list
4460         (we can't pass back a list since lists are typed
4461         and we don't have any idea what type the the client
4462         intended the list to be... :-( )
4463         
4464 2004-07-10  Seth Nickell  <seth@gnome.org>
4465
4466         * python/examples/Makefile.am:
4467
4468         Fix distcheck breakage caused by new examples.
4469
4470 2004-07-10  Seth Nickell  <seth@gnome.org>
4471
4472         * python/dbus.py:
4473
4474         Add "message" argument to service-side dbus.Object
4475         methods. This will break existing services written
4476         using the python bindings, but will allow extraction
4477         of all the message information (e.g. who its from).
4478
4479         Add improved "object oriented" signal handling/emission.
4480         
4481         * python/examples/example-service.py:
4482
4483         Nix this example.
4484         
4485         * python/examples/example-signal-emitter.py:
4486         * python/examples/example-signal-recipient.py:
4487
4488         Two new examples that show how to emit and receive
4489         signals using the new APIs.
4490         
4491         * python/examples/example-signals.py:
4492         * python/examples/gconf-proxy-service.py:
4493         * python/examples/gconf-proxy-service2.py:
4494
4495         Add "message" argument to service methods.
4496
4497 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
4498
4499         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
4500         * dbus/bus.c (dbus_bus_get_unix_user)
4501         * doc/dbus-specification.xml: implement GetConnectionUnixUser
4502         method of org.freedesktop.DBus interface.
4503
4504         * bus/dispatch.c: test case
4505
4506 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
4507
4508         * python/Makefile.am: switched include directory from glib/ to dbus/
4509         since dbus-glib.h moved
4510  
4511 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4512
4513         * configure.in: prevent building the gcj stuff and libxml loader
4514         since they are broken.
4515
4516 2004-06-20  Havoc Pennington  <hp@redhat.com>
4517
4518         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
4519         codes from the dbus error names
4520         
4521         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
4522         as dbus/dbus-glib.h and that breakage is now visible due to 
4523         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
4524         
4525         * glib/dbus-glib.h: s/gproxy/g_proxy/
4526
4527         * dbus/dbus-shared.h: new header to hold stuff shared with
4528         binding APIs
4529         
4530         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
4531         than dbus-errors.h
4532
4533         * glib/dbus-glib.h (dbus_set_g_error): move to
4534         dbus-glib-lowlevel.h
4535
4536         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
4537         of stuff to enable this
4538
4539         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
4540
4541         * a bunch of other changes with the same basic "separate glib 
4542         bindings from dbus.h" theme
4543         
4544 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
4545
4546         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
4547
4548         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
4549
4550 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4551
4552         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
4553         the reply value of the ServiceExists message.
4554
4555 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
4556
4557         * python/dbus_bindings.pyx.in: No longer need to parse path
4558         elements and pass them as arrays of strings.  The C API now
4559         accepts plain path strings.
4560         (_build_parsed_path): removed 
4561
4562 2004-06-07  Havoc Pennington  <hp@redhat.com>
4563
4564         * doc/TODO: remove auto-activation item since it's done; sort
4565         items by importance/milestone
4566
4567 2004-06-07  Havoc Pennington  <hp@redhat.com>
4568
4569         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
4570         random signature when using REQUIRED_FIELDS (this hack won't work
4571         in the long term)
4572
4573         * dbus/dbus-message.c: change the signature to be a header field,
4574         instead of message->signature special-case string. Incremental
4575         step forward. Then we can fix up code to send the signature in the
4576         message, then fix up code to validate said signature, then fix up
4577         code to not put the typecodes inline, etc.
4578         (load_one_message): don't make up the signature after the fact
4579         (decode_header_data): require signature field for the known
4580         message types
4581
4582         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
4583
4584         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
4585
4586 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
4587
4588         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
4589
4590         * mono/Handler.cs: Updated to follow new path argument for
4591         (un-)registering objects.
4592
4593         * mono/example/Makefile.am:
4594         * mono/Makefile.am:
4595         * configure.in: Bumped required version for mono and use new -pkg
4596         syntax for deps
4597
4598 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4599
4600         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
4601         registration functions take the path argument as char* instead of
4602         char**.
4603
4604         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
4605         split off the path decompostion part of
4606         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
4607         warnings. 
4608
4609         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
4610         
4611 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
4612  
4613         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
4614         machine approach.  A state is implemented as a function that
4615         handles incoming events as specified for that state.
4616         
4617         * doc/dbus-specification.xml: Update auth protocol state machine
4618         specification to match implementation.  Remove some leftover
4619         base64 examples.
4620
4621 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
4622
4623         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
4624         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
4625         quiet doxygen.
4626
4627         * Doxyfile.in: remove deprecated options.
4628
4629         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
4630         glib/test-thread.h, glib/test-thread-client.c,
4631         glib/test-thread-server.c, glib/test-profile.c,
4632         glib/test-dbus-glib.c: remove these unused files.
4633
4634 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4635
4636         * dbus/dbus-object-tree.c
4637         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
4638         non-fallback handlers (bug #684).
4639         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
4640         (find_subtree_recurse): report wether the returned subtree is an
4641         exact match or a "fallback" match higher up in the tree.
4642         (object_tree_test_iteration): update test case.
4643
4644 2004-06-01  Seth Nickell  <seth@gnome.org>
4645
4646         * python/dbus_bindings.pyx.in:
4647         * python/tests/test-client.py:
4648
4649         Round off basic type support. Add dicts (yay!), and 
4650         remaining array types.
4651
4652         Make MessageIter more general so it works for dicts too.
4653
4654         Mark all loop variables as C integers.
4655         
4656 2004-05-31  Havoc Pennington  <hp@redhat.com>
4657
4658         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
4659         "in" before "out"
4660
4661         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
4662
4663         * glib/dbus-glib-tool.c (main): set up to have a --self-test
4664         option that runs the tests, and start filling in some code
4665         including for starters just dumping the interfaces to stdout
4666
4667         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
4668
4669         * test/data/valid-introspection-files/lots-of-types.xml: test of
4670         an example introspection file
4671
4672         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
4673         "node" (I think...)
4674
4675 2004-05-31  Seth Nickell  <seth@gnome.org>
4676
4677         * python/dbus_bindings.pyx.in:
4678         * python/tests/test-client.py:
4679
4680         Test Suite: 1
4681         Python Bindings: 0
4682
4683         Fix string array memory trashing bug... oops...
4684
4685 2004-05-30  Seth Nickell  <seth@gnome.org>
4686
4687         * python/dbus.py:
4688
4689         Add a nicer-but-less-flexible alternate API for handling 
4690         calls to virtual objects in dbus.ObjectTree.
4691
4692         Screw up the argument order to the dbus.Object constructor
4693         for consistency with dbus.ObjectTree (and to make dbus_methods
4694         optional for future extension)
4695         
4696         * python/examples/Makefile.am:
4697         * python/examples/gconf-proxy-service.py:
4698         * python/examples/gconf-proxy-service2.py:
4699
4700         Alternate implementation of gconf-proxy-service using the
4701         nicer dbus.ObjectTree API.
4702         
4703         * python/examples/example-service.py:
4704         * python/tests/test-server.py
4705
4706         Reverse the argument order to deal with dbus.Object constructor
4707         changes.
4708         
4709 2004-05-30  Seth Nickell  <seth@gnome.org>
4710
4711         * python/examples/example-client.py:
4712         * python/examples/example-service.py:
4713
4714         Take it back. Lists seem to work but they're broken
4715         in the test suite. Make the base examples use
4716         lists (works fine).
4717
4718 2004-05-30  Seth Nickell  <seth@gnome.org>
4719
4720         * python/dbus_bindings.pyx.in:
4721         * python/tests/test-client.py:
4722
4723         Add some more tests and fix errors that crop up.
4724         Unfortunately, currently it seems like marshalling
4725         and unmarshalling of lists is completely broken :-(
4726
4727 2004-05-30  Seth Nickell  <seth@gnome.org>
4728
4729         * python/dbus_bindings.pyx.in:
4730
4731         Add support for ObjectPath type.
4732
4733         * python/dbus.py:
4734
4735         Refactor message handling code to a common function.
4736         
4737         * python/tests/test-client.py:
4738         * python/tests/test-server.py:
4739
4740         Add tests that check to make sure values of all types
4741         can be echoed from a service w/o mangling.
4742         
4743 2004-05-29  Seth Nickell  <seth@gnome.org>
4744
4745         * python/dbus.py:
4746
4747         Add ObjectTree class which allows implementation
4748         of trees of "virtual" objects. Basically the python
4749         wrapper for "register_fallback".
4750         
4751         * python/examples/Makefile.am
4752         * python/examples/gconf-proxy-client.py:
4753         * python/examples/gconf-proxy-service.py:
4754
4755         Implement a simple GConf proxy service that supports
4756         get/set on string and int GConf keys using the ObjectTree.
4757         
4758 2004-05-29  Seth Nickell  <seth@gnome.org>
4759
4760         * python/dbus.py:
4761         * python/examples/example-client.py:
4762         * python/examples/example-service.py:
4763         * python/examples/list-system-services.py:
4764
4765         Add SessionBus, SystemBus and ActivationBus classes
4766         so you don't need to know the special little BUS_TYPE
4767         flag.
4768         
4769 2004-05-29  Havoc Pennington  <hp@redhat.com>
4770
4771         * bus/config-parser.c (process_test_valid_subdir): temporarily
4772         stop testing config parser OOM handling, since expat has issues
4773         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
4774
4775         * bus/dbus-daemon-1.1.in: change requested_reply to
4776         send_requested_reply/receive_requested_reply so we can send the
4777         replies, not just receive them.
4778
4779         * bus/config-parser.c: parse the new
4780         send_requested_reply/receive_requested_reply
4781
4782         * bus/policy.c (bus_client_policy_check_can_send): add
4783         requested_reply argument and use it
4784
4785         * bus/bus.c (bus_context_check_security_policy): pass through
4786         requested_reply status to message send check
4787
4788         * bus/system.conf.in: adapt to requested_reply change
4789         
4790 2004-05-28  Havoc Pennington  <hp@redhat.com>
4791
4792         * test/glib/test-service-glib.c (main): remove unused variable
4793
4794         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
4795
4796         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
4797         from the enum, no longer in use.
4798
4799         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
4800         works right.
4801
4802         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
4803         whether error_name passed in is a valid error name.
4804
4805 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
4806
4807         * dbus/dbus-message.c (dbus_message_get_args): Added support for
4808         OBJECT_PATH and OBJECT_PATH_ARRAY
4809
4810 2004-05-28  Seth Nickell  <seth@gnome.org>
4811
4812         * python/examples/Makefile.am:
4813
4814         Forget to add Makefile.am. Do not pass go.
4815
4816 2004-05-28  Michael Meeks  <michael@ximian.com>
4817
4818         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
4819         fix no int64 case.
4820
4821         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
4822
4823         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
4824         (_dbus_message_iter_get_basic_type_array): impl.
4825         drastically simplify ~all relevant _get methods to use these.
4826         (_dbus_message_iter_append_basic_array),
4827         (dbus_message_iter_append_basic): impl
4828         drastically simplify ~all relevant _append methods to use these.
4829
4830         * dbus/dbus-message-builder.c (parse_basic_type) 
4831         (parse_basic_array, lookup_basic_type): impl.
4832         (_dbus_message_data_load): prune scads of duplicate /
4833         cut & paste coding.
4834
4835         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
4836         (_dbus_demarshal_basic_type): implement,
4837         (demarshal_and_validate_len/arg): beef up debug.
4838         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
4839
4840 2004-05-27  Seth Nickell  <seth@gnome.org>
4841
4842         * configure.in:
4843         * python/Makefile.am:
4844
4845         Include the example python apps in the tarball.
4846         
4847         * python/examples/list-system-services.py
4848
4849         Add a python new example that fetches the list of services
4850         from the system bus.
4851         
4852 2004-05-27  Seth Nickell  <seth@gnome.org>
4853
4854         * python/dbus.py:
4855         * python/dbus_bindings.pyx.in:
4856
4857         Fix failure to notify that a signal was not handled,
4858         resulted in hung functions.
4859         
4860 2004-05-25  Colin Walters  <walters@redhat.com>
4861
4862         * tools/dbus-monitor.c (main): Monitor all types of messages.
4863
4864 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
4865
4866         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
4867         which unregisters the object path and disposes the handler.
4868
4869 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
4870  
4871         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
4872          
4873         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
4874         operands to && so we call dbus_message_iter_next () for the last
4875         argument also.
4876
4877 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4878
4879         * dbus/dbus-object-tree.c
4880         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
4881         children even if the requested path isn't registered.
4882         (object_tree_test_iteration): test object_tree_list_registered.
4883
4884         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
4885         it to 0.
4886         
4887 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
4888
4889         * doc/TODO: Remove resolved items.
4890
4891         * bus/expirelist.h (struct BusExpireList): remove unused n_items
4892         field.
4893         
4894         * bus/connection.c (bus_connections_expect_reply): Enforce the
4895         per-connection limit on pending replies.
4896         
4897         Patch from Jon Trowbridge <trow@ximian.com>:
4898  
4899         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
4900         up a watch that triggers a config reload when one end of the pipe
4901         becomes readable.
4902         (signal_handler): Instead of doing the config reload in our SIGHUP
4903         handler, just write to the reload pipe and let the associated
4904         watch handle the reload when control returns to the main loop.
4905  
4906         * bus/driver.c (bus_driver_handle_reload_config): Added.
4907         Implements a ReloadConfig method for requesting a configuration
4908         file reload via the bus driver.
4909  
4910 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
4911
4912         * HACKING: Updated release instructions concerning the wiki page.
4913
4914 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
4915
4916         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
4917         filter against auth->allowed_mechs; we only add allowed mechs in
4918         record_mechanisms().
4919  
4920         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
4921         ALLOWED_MECHS to auth-script format so we can set the list of
4922         allowed mechanisms.
4923  
4924         * data/auth/client-out-of-mechanisms.auth-script: New test to
4925         check client disconnects when it is out of mechanisms to try.
4926  
4927         * dbus/dbus-auth.c (process_command): Remove check for lines
4928         longer that 1 MB; we only buffer up maximum 16 kB.
4929  
4930         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4931         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
4932         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
4933         assume there might be unused bytes.
4934  
4935         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
4936         client-out-of-mechs, it is handled in process_reject(). Move check
4937         for max failures to send_rejected(), as it's a server-only thing.
4938
4939         * dbus/dbus-auth.c: Factor out protocol reply code into functions
4940         send_auth(), send_data(), send_rejected(), send_error(),
4941         send_ok(), send_begin() and send_cancel().
4942
4943 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
4944
4945         Remove base64 encoding, replace with hex encoding. Original patch
4946         from trow@ximian.com, added error handling.
4947
4948         * dbus/dbus-string.c (_dbus_string_base64_encode)
4949         (_dbus_string_base64_decode): Remove.
4950         (_dbus_string_hex_decode): Add end_return argument so we can
4951         distinguish between OOM and invalid hex encoding.
4952         (_dbus_string_test): Remove base64 tests and add test case for
4953         invalid hex.
4954
4955         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
4956         Replace base64 with hex.
4957
4958         * test/data/auth/invalid-hex-encoding.auth-script: New test case
4959         for invalid hex encoded data in auth protocol.
4960
4961 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4962
4963         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
4964         leak.
4965
4966 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
4967
4968         * mono/dbus-sharp.dll.config.in: Added for GAC
4969         * mono/dbus-sharp.snk: Added for GAC
4970         * mono/Assembly.cs.in: Added for GAC
4971         * mono/Makefile.am: Changes for GAC installation        
4972         * configure.in: Added refs for dbus-sharp.dll.config.in and
4973         Assembly.cs.in. More fixes for mono testing
4974         * mono/example/Makefile.am: Changed var to CSC
4975         * Makefile.am: Changed flag name to DBUS_USE_CSC
4976
4977 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
4978
4979         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
4980         * mono/doc/*: Added documentation framework
4981         * configure.in: Added monodoc check
4982         * README: Added description of mono configure flags
4983
4984 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
4985
4986         * doc/dbus-specification.xml: Added a "Required" column to the 
4987         header fields table and changed the "zero or more" verbage in
4988         the above paragraph to read "The header must contain the required 
4989         named header fields and zero or more of the optional named header 
4990         fields".
4991         * test/data/invalid-messages/*.message: Added the required PATH 
4992         named header field to the tests so that they don't fail on 
4993         'Missing path field'
4994
4995 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
4996
4997         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
4998         the stack by implicitly defining variable and parameter types and
4999         removing the hack of defining C pointers as python objects and later
5000         casting them.
5001
5002 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
5003
5004         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
5005
5006 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
5007
5008         * mono/DBusType/Dict.cs: Handle empty dicts
5009         * mono/DBusType/Array.cs: Handle empty arrays
5010         * mono/Arguments.cs: Handle empty arguments
5011
5012 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
5013
5014         * dbus-sharp.pc.in: Modified to include include Libs and Requires
5015         field
5016
5017 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
5018
5019         * test/data/valid-messages/standard-*.message: Update message
5020         test scripts to new header field names.
5021
5022 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
5023
5024         * test/break-loader.c (randomly_do_n_things): tracked down buffer
5025         overflow to times_we_did_each_thing array which would chop off the
5026         first character of the failure_dir string. Increased the size of
5027         the array to 7 to reflect the number of random mutation functions
5028         we have.
5029
5030 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
5031
5032         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
5033         unix_server->watch here, it is unreffed in disconnect.
5034         (_dbus_server_new_for_tcp_socket): convert NULL host to
5035         "localhost" here so we don't append NULL to address.
5036         
5037         * dbus/dbus-server.c (_dbus_server_test): Add test case for
5038         various addresses, including tcp with no explicit host.
5039
5040 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5041
5042         * dbus/dbus-message.c (decode_header_data, decode_string_field):
5043         fix incorrect setting of .name_offset in the HeaderField (it was
5044         off by two bytes, positioned right after the name and typecode)
5045
5046         * bus/bus.c (bus_context_new, bus_context_unref): test before
5047         calling dbus_server_free_data_slot and _dbus_user_database_unref
5048         in case of an error.
5049
5050         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
5051         by libdbus-gtool.
5052
5053 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
5054
5055         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
5056         _dbus_poll() instead of select().
5057
5058 2004-04-15  Jon Trowbridge  <trow@ximian.com>
5059
5060         * bus/main.c (signal_handler): Reload the configuration files
5061         on SIGHUP.
5062         (main): Set up our SIGHUP handler.
5063
5064         * bus/bus.c (struct BusContext): Store the config file, user and
5065         fork flag in the BusContext.
5066         (process_config_first_time_only): Added.  Contains the code
5067         (previously in bus_context_new) for setting up the BusContext from
5068         the BusConfigParser that should only be run the first time the
5069         config files are read.
5070         (process_config_every_time): Added.  Contains the code (previously
5071         in bus_context_new) for setting up the BusContext from the
5072         BusConfigParser that should be run every time the config files are
5073         read.
5074         (load_config): Added.  Builds a BusConfigParser from the config
5075         files and passes the resulting structure off to
5076         process_config_first_time_only (assuming this is the first time)
5077         and process_config_every_time.
5078         (bus_context_new): All of the config-related code has been moved
5079         to process_config_first_time_only and process_config_every_time.
5080         Now this function just does the non-config-related initializations
5081         and calls load_config.
5082         (bus_context_reload_config): Added.
5083
5084 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5085
5086         * bus/driver.c (bus_driver_handle_get_service_owner):
5087         implement a GetServiceOwner method.
5088         * doc/dbus-specification.xml: document it.
5089         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
5090         
5091         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
5092         implement, using the bus GetServiceOwner method.
5093
5094         * test/glib/test-dbus-glib.c:
5095         use dbus_gproxy_new_for_service_owner so that we can receive the
5096         signal. 
5097
5098 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
5099
5100         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5101         dbus/dbus-message.c, dbus/dbus-protocol.h
5102         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
5103
5104         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5105         dbus/dbus-message.c, dbus/dbus-protocol.h
5106         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
5107
5108         * dbus/dbus-internals.c (_dbus_header_field_to_string):
5109         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
5110         DBUS_HEADER_FIELD_SENDER resolves to "sender"
5111
5112         * doc/dbus-specification.xml (Header Fields Table):
5113         s/SERVICE/DESTINATION
5114         s/SENDER_SERVICE/SENDER
5115
5116
5117 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5118
5119         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
5120         a few seconds.
5121
5122 2004-04-13  Michael Meeks  <michael@ximian.com>
5123
5124         * glib/dbus-gobject.c (handle_introspect): split out
5125         (introspect_properties): this.
5126         (handle_introspect): implement this.
5127
5128         * test/glib/Makefile.am: use the absolute path so the bus
5129         daemon's chdir ("/") doesn't kill us dead.
5130
5131         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
5132
5133 2004-04-12  Jon Trowbridge  <trow@ximian.com>
5134
5135         * bus/config-parser.c (struct BusConfigParser): Added
5136         included_files field.
5137         (seen_include): Added.  Checks whether or not a file has already
5138         been included by any parent BusConfigParser.
5139         (bus_config_parser_new): Copy the parent's included_files.
5140         (include_file): Track which files have been included, and fail on
5141         circular inclusions.
5142         (process_test_valid_subdir): Changed printf to report if we are
5143         testing valid or invalid conf files.
5144         (all_are_equiv): Changed printf to be a bit clearer about
5145         what we are actually doing.
5146         (bus_config_parser_test): Test invalid configuration files.
5147
5148 2004-04-09  Jon Trowbridge  <trow@ximian.com>
5149
5150         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
5151         argument.  If non-null, the newly-constructed BusConfigParser will
5152         be initialized with the parent's BusLimits instead of the default
5153         values.
5154         (include_file): When including a config file, pass in
5155         the current parser as the parent and then copy the BusLimits
5156         from the included BusConfigParser pack to the current parser.
5157         (process_test_valid_subdir): Renamed from process_test_subdir.
5158         (process_test_equiv_subdir): Added.  Walks through a directory,
5159         descending into each subdirectory and loading the config files
5160         it finds there.  If any subdirectory contains two config files
5161         that don't produce identical BusConfigParser structs, fail.
5162         For now, the BusConfigParser's BusPolicies are not compared.
5163         (bus_config_parser_test): Call both process_test_valid_subdir and
5164         process_test_equiv_subdir.
5165
5166         * bus/config-loader-libxml.c (bus_config_load): Take a parent
5167         argument and pass it along to the call to bus_config_parser_new.
5168         Also made a few small changes to allow this code to compile.
5169
5170         * bus/config-loader-expat.c (bus_config_load): Take a parent
5171         argument and pass it along to the call to bus_config_parser_new.
5172
5173         * bus/bus.c (bus_context_new): Load the config file
5174         with a NULL parent argument.
5175
5176 2004-03-29  Michael Meeks  <michael@ximian.com>
5177
5178         * glib/dbus-gobject.c (introspect_properties): split
5179         out, fix mangled 'while' flow control.
5180         (introspect_signals): implement.
5181         (handle_introspect): update.
5182
5183 2004-03-29  Michael Meeks  <michael@ximian.com>
5184
5185         * glib/dbus-gobject.c (set_object_property): split out / 
5186         re-work, use the property type, and not the message type(!)
5187         (get_object_property): ditto.
5188
5189         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
5190         (dbus_gvalue_marshal): make this code re-usable, needed
5191         for signals too, also on both proxy and server side.
5192         Re-write for more efficiency / readability.
5193
5194 2004-03-29  Michael Meeks  <michael@ximian.com>
5195
5196         * dbus/dbus-message.c
5197         (dbus_message_new_error_printf): impl.
5198
5199         * dbus/dbus-connection.c
5200         (dbus_connection_unregister_object_path): fix warning.
5201
5202         * configure.in: fix no-mono-installed situation.
5203
5204 2004-03-27  Havoc Pennington  <hp@redhat.com>
5205
5206         Patch from Timo Teräs:
5207         
5208         * tools/dbus-send.c (main): if --print-reply, assume type is
5209         method call; support boolean type args
5210         
5211         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
5212         bunch of memleak and logic bugs
5213         
5214 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
5215
5216         * mono/Arguments.cs:
5217         * mono/Introspector.cs:
5218         * mono/Handler.cs:
5219         * mono/InterfaceProxy.cs:
5220         * mono/Message.cs
5221         * mono/ProxyBuilder.cs:
5222         * mono/Service.cs:
5223         Added InterfaceProxy class to avoid building proxies for every
5224         object.
5225
5226         * dbus-message.h:
5227         * dbus-message.c (dbus_message_append_args_valist)
5228         (dbus_message_iter_get_object_path)
5229         (dbus_message_iter_get_object_path_array)
5230         (dbus_message_iter_append_object_path)
5231         (dbus_message_iter_append_object_path_array):
5232         Added object_path iter functions to handle OBJECT_PATH arguments
5233         
5234 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
5235
5236         First checkin of mono bindings.
5237         * configure.in:
5238         * Makefile.am:
5239         Build stuff for the bindings
5240         * dbus-sharp.pc.in: Added for pkgconfig
5241         
5242 2004-03-21  Havoc Pennington  <hp@redhat.com>
5243
5244         * test/test-service.c (main): remove debug spew
5245
5246 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5247
5248         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
5249         arrays
5250
5251         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
5252         (dbus_message_iter_init_array_iterator)
5253         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
5254         indicate whether the iterator is empty
5255
5256         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
5257         warnings
5258
5259 2004-03-19  Havoc Pennington  <hp@redhat.com>
5260
5261         * NEWS: 0.21 updates
5262
5263         * configure.in: 0.21
5264
5265         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
5266         
5267         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
5268         you don't need pyrex to make dist
5269
5270         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
5271         sources; run moc
5272         
5273 2004-03-18  Richard Hult  <richard@imendio.com>
5274
5275         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
5276         (dbus_message_set_auto_activation): Add doxygen docs.
5277
5278 2004-03-16  Richard Hult  <richard@imendio.com>
5279
5280         * bus/activation.c: (bus_activation_service_created),
5281         (bus_activation_send_pending_auto_activation_messages),
5282         (bus_activation_activate_service):
5283         * bus/activation.h:
5284         * bus/dispatch.c: (bus_dispatch),
5285         (check_nonexistent_service_auto_activation),
5286         (check_service_auto_activated),
5287         (check_segfault_service_auto_activation),
5288         (check_existent_service_auto_activation), (bus_dispatch_test):
5289         * bus/driver.c: (bus_driver_handle_activate_service):
5290         * bus/services.c: (bus_registry_acquire_service):
5291         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
5292         (dbus_message_get_auto_activation):
5293         * dbus/dbus-message.h:
5294         * dbus/dbus-protocol.h: Implement auto-activation.
5295         
5296         * doc/dbus-specification.xml: Add auto-activation to the spec.
5297
5298 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5299
5300         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
5301         fix a bug with CUSTOM types.
5302
5303         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
5304         a unit test for this bug (used to fail).
5305
5306 2004-03-12  Mikael Hallendal  <micke@imendio.com>
5307
5308         * bus/activation.c:
5309         (babysitter_watch_callback): notify all pending activations waiting for
5310           the same exec that the activation failed.
5311         (bus_activation_activate_service): shortcut the activation if we 
5312           already waiting for the same executable to start up.
5313
5314 2004-03-12  Mikael Hallendal  <micke@imendio.com>
5315
5316         * bus/activation.c: 
5317         - Added service file reloading. 
5318           Each service files directory is kept in an hash table in 
5319           BusActivation and each BusActivationEntry knows what .service-file it
5320           was read from. So when you try to activate a service the bus will 
5321           check if it's been updated, removed or if new .service-files has 
5322           been installed.
5323         - Test code at the bottom for the service file reloading.
5324         * bus/test-main.c: (main):
5325         * bus/test.h:
5326         - added service reloading test.
5327         * dbus/dbus-sysdeps.c: 
5328         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
5329
5330 2004-03-08  Michael Meeks  <michael@ximian.com>
5331
5332         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
5333         bail immediately if disconnected, to avoid busy loop.
5334
5335         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
5336         cleanup cut/paste/inefficiency.
5337
5338 2004-03-01  David Zeuthen  <david@fubar.dk>
5339
5340         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
5341         bug where args were used twice. This bug resulted in a segfault
5342         on a Debian/PPC system when starting the messagebus daemon. Include
5343         dbus-sysdeps.h for DBUS_VA_COPY
5344
5345         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
5346
5347         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
5348         appropriate va_copy implementation. From GLib
5349         
5350 2004-02-24  Joe Shaw  <joe@ximian.com>
5351
5352         * bus/services.c (bus_registry_acquire_service): We need to pass
5353         in the service name to dbus_set_error() to prevent a crash.
5354
5355 2003-12-26  Anders Carlsson  <andersca@gnome.org>
5356
5357         * AUTHORS: Reveal my True identity.
5358
5359 2003-12-17  Mikael Hallendal  <micke@imendio.com>
5360
5361         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
5362         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
5363
5364 2003-12-13  Mikael Hallendal  <micke@imendio.com>
5365
5366         * doc/TODO: Added not about better error check of configuration files.
5367
5368 2003-12-02  Richard Hult  <richard@imendio.com>
5369
5370         * Update AFL version to 2.0 throughout the source files to reflect
5371         the update that was done a while ago.
5372
5373 2003-12-02  Richard Hult  <richard@imendio.com>
5374
5375         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
5376         wrote_dict_key to FALSE on the iter that the dict is appended to,
5377         just like when appending other types. Fixes a bug where a dict
5378         couldn't be put inside a dict.
5379         (dbus_message_iter_append_dict_key): Fix typo in warning message.
5380         (message_iter_test, _dbus_message_test): Add test case for dict
5381         inside dict.
5382
5383 2003-12-01  David Zeuthen  <david@fubar.dk>
5384
5385         * python/dbus.py: Add the actual message when calling the reciever
5386         of a signal such that parameters can be inspected. Add the method
5387         remove_signal_receiver
5388         
5389 2003-11-26  Mikael Hallendal  <micke@imendio.com>
5390
5391         * bus/*.[ch]:
5392         * dbus/*.[ch]:
5393         * glib/*.[ch]: Made ref functions return the pointer
5394
5395 2003-11-25  Zack Rusin  <zack@kde.org>
5396
5397         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
5398
5399         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
5400         wrappers,
5401
5402         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
5403         the Integrator and to better fit with the server,
5404
5405 2003-11-24  Zack Rusin  <zack@kde.org>
5406
5407         * qt/connection.h, qt/connection.cpp: removing initDbus method since
5408         the integrator handles it now
5409
5410         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
5411         since QTimer wasn't really meant to be used the way DBusTimeout is
5412
5413 2003-11-24  Zack Rusin  <zack@kde.org>
5414
5415         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
5416         Integrator class which integrates D-BUS with the Qt event loop,
5417
5418         * qt/connection.h, qt/connection.cpp: Move all the code which
5419         was dealing with D-BUS integration to the Integrator class,
5420         and start using Integrator,
5421
5422 2003-11-23  Zack Rusin  <zack@kde.org>
5423
5424         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
5425         wrapper
5426
5427         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
5428         switching namespaces to DBusQt, reworking the class,
5429
5430         * Makefile.cvs: switching dependencies so that it matches KDE 
5431         schematics,
5432         
5433         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
5434         the library
5435
5436 2003-11-19  Havoc Pennington  <hp@redhat.com>
5437
5438         * NEWS: update
5439
5440         * configure.in: bump version to 0.20
5441
5442         * configure.in (have_qt): add yet another place to look for qt
5443         (someone hand trolltech a .pc file...)
5444
5445 2003-11-01  Havoc Pennington  <hp@redhat.com>
5446
5447         * doc/dbus-specification.xml: add state machine docs on the auth
5448         protocol; just a first draft, I'm sure it's wrong.      
5449
5450 2003-10-28  David Zeuthen  <david@fubar.dk>
5451
5452         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
5453         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
5454         
5455 2003-10-28  Havoc Pennington  <hp@redhat.com>
5456
5457         * dbus/dbus-message.c (get_next_field): delete unused function
5458
5459 2003-10-28  Havoc Pennington  <hp@redhat.com>
5460
5461         * bus/expirelist.c (do_expiration_with_current_time): detect
5462         failure of the expire_func due to OOM
5463
5464         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
5465
5466         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
5467         NoReply error that's now created by the bus when the service exits
5468
5469 2003-10-28  Havoc Pennington  <hp@redhat.com>
5470
5471         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
5472         tests for set_path, set_interface, set_member, etc.
5473
5474         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
5475
5476         * dbus/dbus-message.c (set_string_field): always just delete and
5477         re-append the field; accept NULL for deletion
5478         (re_align_fields_recurse): reimplement
5479         
5480 2003-10-26  Havoc Pennington  <hp@redhat.com>
5481
5482         * dbus/dbus-connection.c: fix docs to properly describe the
5483         disconnected message
5484         (_dbus_connection_notify_disconnected): remove this function; 
5485         we can't synchronously add the disconnected message, we have to 
5486         do it after we've queued any remaining real messages
5487         (_dbus_connection_get_dispatch_status_unlocked): queue the
5488         disconnect message only if the transport has finished queueing all
5489         its real messages and is disconnected.
5490         (dbus_connection_disconnect): update the dispatch status here
5491
5492 2003-10-22  Havoc Pennington  <hp@redhat.com>
5493
5494         * bus/bus.c (bus_context_check_security_policy): fix up assertion
5495
5496         * bus/connection.c (bus_transaction_send_from_driver): set the
5497         destination to the connection's base service
5498
5499 2003-10-20  Havoc Pennington  <hp@redhat.com>
5500
5501         hmm, make check is currently not passing.
5502         
5503         * doc/dbus-specification.xml: add requirement that custom type
5504         names follow the same rules as interface names.
5505
5506         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
5507         duplication and allow 'c' to be 'custom'; dict is now 'm' for
5508         'map'
5509
5510         * doc/dbus-specification.xml: update type codes to match
5511         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
5512         CUSTOM. Add type OBJECT_PATH to the spec.
5513
5514 2003-10-17  Havoc Pennington  <hp@redhat.com>
5515
5516         * bus/driver.c (create_unique_client_name): use "." as separator
5517         in base service names instead of '-'
5518
5519         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
5520         byte at the end of the string
5521
5522         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
5523         optimization macros since string validation seems to be a slow
5524         point.
5525         
5526         * doc/dbus-specification.xml: restrict valid
5527         service/interface/member/error names. Add test suite code for the
5528         name validation.
5529
5530         * dbus/dbus-string.c: limit service/interface/member/error names 
5531         to [0-9][A-Z][a-z]_
5532
5533         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
5534         format arg to verbose spew
5535
5536         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
5537         memory, return instead of g_error
5538
5539         * test/test-service.c (path_message_func): support emitting a
5540         signal on request
5541
5542         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
5543         activation bus type if DBUS_BUS_ACTIVATION was set; default to
5544         assuming the activation bus was the session bus so that services
5545         started manually will still register.
5546         (init_connections_unlocked): fix so that in OOM situation we get
5547         the same semantics when retrying the function
5548         
5549         * test/test-service.c (main): change to use path registration, to
5550         test those codepaths; register with DBUS_BUS_ACTIVATION rather
5551         than DBUS_BUS_SESSION
5552
5553 2003-10-16  Havoc Pennington  <hp@redhat.com>
5554
5555         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
5556
5557         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
5558         coverage of the tests
5559         (coverage-report.txt): don't move the .da and .bbg files around
5560
5561 2003-10-16  Havoc Pennington  <hp@redhat.com>
5562
5563         * bus/bus.c (struct BusContext): remove struct field I didn't mean
5564         to put there
5565
5566 2003-10-16  Havoc Pennington  <hp@redhat.com>
5567
5568         * bus/connection.c (bus_pending_reply_expired): either cancel or
5569         execute, not both
5570         (bus_connections_check_reply): use unlink, not remove_link, as we
5571         don't want to free the link; fixes double free mess
5572
5573         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
5574         where no reply was received
5575
5576         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
5577         fix a refcount leak
5578
5579         * bus/signals.c (match_rule_matches): add special cases for the
5580         bus driver, so you can match on sender/destination for it.
5581
5582         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
5583         DBUS_PRINT_BACKTRACE is set
5584
5585         * dbus/dbus-internals.c: add pid to assertion failure messages
5586
5587         * dbus/dbus-connection.c: add message type code to the debug spew
5588
5589         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
5590         sender=foo not service=foo
5591
5592         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
5593         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
5594         DBUS_ACTIVATION_ADDRESS instead
5595
5596         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
5597         DBUS_SYSTEM_BUS_ADDRESS if appropriate
5598
5599         * bus/bus.c (bus_context_new): handle OOM copying bus type into
5600         context struct
5601
5602         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
5603         (dbus_message_iter_get_object_path_array): new function (half
5604         finished, disabled for the moment)
5605         
5606         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
5607         DBUS_MESSAGE_TYPE_ERROR
5608
5609         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
5610         avoid redirecting stderr to /dev/null
5611         (babysit): close stdin if not doing the "exit_with_session" thing
5612
5613         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
5614         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
5615         stdout/stdin, so things don't get confused
5616         
5617         * bus/system.conf.in: fix to allow replies, I modified .conf
5618         instead of .conf.in again.
5619
5620 2003-10-14  David Zeuthen  <david@fubar.dk>
5621
5622         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
5623         argtype to arg_type when raising unknown arg type exception.
5624         Changed type list to reflect the changes in dbus-protocol.h so 
5625         the bindings actually work.
5626
5627 2003-10-14  Havoc Pennington  <hp@redhat.com>
5628
5629         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
5630         to have a bug keeping it from outputting the .da files sometimes
5631         (string_get_string): don't append garbage nul bytes to the string.
5632
5633 2003-10-15  Seth Nickell  <seth@gnome.org>
5634
5635         * python/Makefile.am:
5636
5637         Include dbus_h_wrapper.h in the dist tarball.
5638
5639 2003-10-14  Havoc Pennington  <hp@redhat.com>
5640
5641         * bus/bus.c (bus_context_check_security_policy): revamp this to
5642         work more sanely with new policy-based requested reply setup
5643
5644         * bus/connection.c (bus_transaction_send_from_driver): set bus
5645         driver messages as no reply
5646
5647         * bus/policy.c (bus_client_policy_check_can_receive): handle a
5648         requested_reply attribute on allow/deny rules
5649
5650         * bus/system.conf: add <allow requested_reply="true"/>
5651
5652         * bus/driver.c (bus_driver_handle_message): fix check for replies
5653         sent to the bus driver, which was backward. How did this ever work
5654         at all though? I think I'm missing something.
5655
5656         * dbus/dbus-message.c (decode_header_data): require error and
5657         method return messages to have a reply serial field to be valid
5658         (_dbus_message_loader_queue_messages): break up this function;
5659         validate that reply serial and plain serial are nonzero; 
5660         clean up the OOM/error handling.
5661         (get_uint_field): don't return -1 from this
5662         (dbus_message_create_header): fix signed/unsigned bug
5663
5664         * bus/connection.c (bus_connections_expect_reply): save serial of
5665         the incoming message, not reply serial
5666
5667 2003-10-14  Havoc Pennington  <hp@redhat.com>
5668
5669         * bus/connection.c: implement pending reply tracking using
5670         BusExpireList
5671
5672         * bus/bus.c (bus_context_check_security_policy): verify that a
5673         reply is pending in order to allow a reply to be sent. Deny 
5674         messages of unknown type.
5675
5676         * bus/dbus-daemon-1.1.in: update to mention new resource limits
5677
5678         * bus/bus.c (bus_context_get_max_replies_per_connection): new
5679         (bus_context_get_reply_timeout): new
5680
5681 2003-10-13  Seth Nickell  <seth@gnome.org>
5682
5683         * python/Makefile.am:
5684
5685         Pass "make distcheck": remove a couple files from DIST_FILES
5686         that weren't included in the final version.
5687
5688 2003-10-12  Havoc Pennington  <hp@pobox.com>
5689
5690         Added test code that 1) starts an actual bus daemon and 2) uses
5691         DBusGProxy; fixed bugs that were revealed by the test. Lots 
5692         more testing possible, but this is the basic framework.
5693         
5694         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
5695         empty proxy lists from the proxy list hash
5696
5697         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
5698         couple of return_if_fail checks
5699
5700         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
5701         to allocate, so everything is cleared to NULL as it should be.
5702
5703         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
5704         source as data to dbus_connection_set_timeout_functions() as the 
5705         timeout functions expected
5706
5707         * test/glib/run-test.sh: add a little script to start up a message
5708         bus and run tests using it
5709
5710         * tools/dbus-launch.1: updates
5711
5712         * tools/dbus-launch.c (main): add --config-file option
5713
5714         * tools/dbus-launch.c (main): remove confusing else if (runprog)
5715         that could never be reached.
5716
5717         * dbus/dbus-message.c (dbus_message_new_method_return) 
5718         (dbus_message_new_error, dbus_message_new_signal): set the
5719         no-reply-expected flag on all these. Redundant, but may
5720         as well be consistent.
5721
5722 2003-10-11  Havoc Pennington  <hp@pobox.com>
5723
5724         * test/decode-gcov.c (function_solve_graph): make broken block
5725         graph a nonfatal error since it seems to be broken. Need to debug
5726         this.
5727
5728         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
5729         can't just check type > INVALID < LAST anymore
5730
5731         * dbus/dbus-message.c (dbus_message_get_signature): new function
5732         (dbus_message_has_signature): new function
5733         (struct DBusMessage): add signature field (right now it isn't sent
5734         over the wire, just generated on the fly)
5735         (dbus_message_copy): copy the signature, and init strings to
5736         proper length to avoid some reallocs
5737         (dbus_message_iter_init_array_iterator): return void, since it
5738         can't fail
5739         (dbus_message_iter_init_dict_iterator): return void since it can't fail
5740         (_dbus_message_loader_queue_messages): add silly temporary hack to
5741         fill in message->signature on load
5742
5743         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
5744         characters, so they are relatively human-readable.
5745
5746 2003-10-11  Havoc Pennington  <hp@pobox.com>
5747
5748         * dbus/dbus-message.c (_dbus_message_test): add more test
5749         coverage, but #if 0 for now since they uncover a bug 
5750         not fixed yet; I think in re_align_field_recurse()
5751         (re_align_field_recurse): add FIXME about broken assertion
5752
5753         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
5754
5755         * bus/connection.c: share a couple code bits with expirelist.c
5756
5757         * bus/expirelist.h, bus/expirelist.c: implement a generic
5758         expire-items-after-N-seconds facility, was going to share between
5759         expiring connections and replies, decided not to use for expiring
5760         connections for now.
5761
5762         * COPYING: include AFL 2.0 (still need to change all the file headers)
5763
5764 2003-10-09  Havoc Pennington  <hp@redhat.com>
5765
5766         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
5767         gcc 3.3. Not that we do anything about it yet.
5768
5769         * bus/signals.c (bus_match_rule_parse): impose max length on the
5770         match rule text
5771
5772         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
5773
5774 2003-10-09  Havoc Pennington  <hp@redhat.com>
5775
5776         Make matching rules theoretically work (add parser).
5777         
5778         * bus/bus.c (bus_context_check_security_policy): fix up to handle
5779         the case where destination is explicitly specified as bus driver
5780         and someone else is eavesdropping.
5781         
5782         * bus/policy.c (bus_client_policy_check_can_receive): fix up
5783         definition of eavesdropping and assertion
5784
5785         * tools/dbus-send.c (main): use dbus_message_type_from_string
5786
5787         * bus/signals.c (bus_match_rule_parse): implement
5788
5789         * dbus/dbus-message.c (dbus_message_type_from_string): new
5790
5791         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
5792
5793 2003-10-02  Havoc Pennington  <hp@pobox.com>
5794
5795         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
5796         dbus_gproxy_oneway_call
5797
5798         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
5799         (dbus_server_setup_with_g_main): fix to allow calling them more
5800         than once on the same args
5801         (dbus_bus_get_with_g_main): new function
5802
5803 2003-10-02  Havoc Pennington  <hp@redhat.com>
5804
5805         * doc/dbus-tutorial.xml: write some stuff
5806
5807 2003-09-29  Havoc Pennington  <hp@pobox.com>
5808
5809         * configure.in: split checks for Doxygen from XML docs, check for
5810         xmlto
5811
5812         * doc/Makefile.am: XML-ify all the docs, and add a blank
5813         dbus-tutorial.xml
5814
5815 2003-09-29  Havoc Pennington  <hp@pobox.com>
5816
5817         * Merge dbus-object-names branch. To see the entire patch 
5818         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
5819         it's huuuuge though.
5820         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
5821         
5822 2003-09-28  Havoc Pennington  <hp@pobox.com>
5823
5824         * HACKING: update to reflect new server
5825
5826 2003-09-26  Seth Nickell  <seth@gnome.org>
5827
5828         * python/dbus.py:
5829         * python/examples/example-signals.py:
5830
5831         Start implementing some notions of signals. The API
5832         is really terrible, but they sort of work (with the
5833         exception of being able to filter by service, and to
5834         transmit signals *as* a particular service). Need to
5835         figure out how to make messages come from the service
5836         we registered :-(
5837         
5838         * python/dbus_bindings.pyx.in:
5839
5840         Removed duplicate message_handler callbacks.
5841         
5842 2003-09-25  Havoc Pennington  <hp@redhat.com>
5843
5844         * bus/session.conf.in: fix my mess
5845
5846 2003-09-25  Havoc Pennington  <hp@pobox.com>
5847
5848         * bus/session.conf.in: fix security policy, reported by Seth Nickell
5849
5850 2003-09-25  Seth Nickell  <seth@gnome.org>
5851
5852         * python/examples/example-service.py:
5853
5854         Johan notices complete wrong code in example-service, but
5855         completely wrong in a way that works exactly the same (!).
5856         Johan is confused, how could this possibly work? Example
5857         code fails to serve purpose of making things clear.
5858         Seth fixes.
5859
5860 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
5861
5862         * doc/dbus-specification.sgml: don't require header fields
5863         to be 4-byte aligned and specify that fields should be
5864         distinguished from padding by the fact that zero is not
5865         a valid field name.
5866         
5867         * doc/TODO: remove re-alignment item and add item to doc
5868         the OBJECT_PATH type.
5869         
5870         * dbus/dbus-message.c:
5871         (HeaderField): rename the original member to value_offset
5872         and introduce a name_offset member to keep track of where
5873         the field actually begins.
5874         (adjust_field_offsets): remove.
5875         (append_int_field), (append_uint_field),
5876         (append_string_field): don't align the start of the header
5877         field to a 4-byte boundary.
5878         (get_next_field): impl finding the next marhsalled field
5879         after a given field.
5880         (re_align_field_recurse): impl re-aligning a number of
5881         already marshalled fields.
5882         (delete_field): impl deleting a field of any type and
5883         re-aligning any following fields.
5884         (delete_int_or_uint_field), (delete_string_field): remove.
5885         (set_int_field), (set_uint_field): no need to re-check
5886         that we have the correct type for the field.
5887         (set_string_field): ditto and impl re-aligning any
5888         following fields.
5889         (decode_header_data): update to take into account that
5890         the fields aren't 4-byte aligned any more and the new
5891         way to distinguish padding from header fields. Also,
5892         don't exit when there is too much header padding.
5893         (process_test_subdir): print the directory.
5894         (_dbus_message_test): add test to make sure a following
5895         field is re-aligned correctly after field deletion.
5896         
5897         * dbus/dbus-string.[ch]:
5898         (_dbus_string_insert_bytes): rename from insert_byte and
5899         allow the insert of multiple bytes.
5900         (_dbus_string_test): test inserting multiple bytes.
5901
5902         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
5903         warning note to docs about having to re-align any
5904         marshalled values following the string.
5905         
5906         * dbus/dbus-message-builder.c:
5907         (append_string_field), (_dbus_message_data_load):
5908         don't align the header field.
5909         
5910         * dbus/dbus-auth.c: (process_test_subdir): print the
5911         directory.
5912         
5913         * test/break-loader.c: (randomly_add_one_byte): upd. for
5914         insert_byte change.
5915         
5916         * test/data/invalid-messages/bad-header-field-alignment.message:
5917         new test case.
5918         
5919         * test/data/valid-messages/unknown-header-field.message: shove
5920         a dict in the unknown field.
5921
5922 2003-09-25  Seth Nickell  <seth@gnome.org>
5923
5924         * python/dbus.py:
5925         * python/dbus_bindings.pyx.in:
5926
5927         Handle return values.
5928         
5929         * python/examples/example-client.py:
5930         * python/examples/example-service.py:
5931
5932         Pass back return values from the service to the client.
5933         
5934 2003-09-24  Seth Nickell  <seth@gnome.org>
5935
5936         * python/dbus.py:
5937
5938         Connect Object methods (when you are sharing an object) up... pass
5939         in a list of methods to be shared. Sharing all the methods just
5940         worked out too weird. You can now create nice Services over the
5941         DBus in Python. :-)
5942         
5943         * python/dbus_bindings.pyx.in:
5944
5945         Keep references to user_data tuples passed into C functions so 
5946         Python doesn't garbage collect on us.
5947
5948         Implement MethodReturn and Error subclasses of Message for creating
5949         DBusMessage's of those types.
5950         
5951         * python/examples/example-client.py:
5952         * python/examples/example-service.py:
5953
5954         Simple example code showing both how create DBus services and objects,
5955         and how to use them.
5956
5957 2003-09-23  Havoc Pennington  <hp@pobox.com>
5958
5959         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
5960
5961 2003-09-23  Havoc Pennington  <hp@redhat.com>
5962
5963         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
5964         (dbus_gproxy_disconnect_signal): implement
5965         (dbus_gproxy_manager_remove_signal_match): implement
5966         (dbus_gproxy_manager_add_signal_match): implement
5967         (dbus_gproxy_oneway_call): implement
5968
5969 2003-09-23  Havoc Pennington  <hp@pobox.com>
5970
5971         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
5972         subclass. This means dropping the transparent thread safety of the
5973         proxy; you now need a separate proxy per-thread, or your own
5974         locking on the proxy. Probably right anyway.
5975         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
5976
5977 2003-09-22  Havoc Pennington  <hp@redhat.com>
5978
5979         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
5980
5981 2003-09-21  Seth Nickell  <seth@gnome.org>
5982
5983         First checkin of the Python bindings.
5984         
5985         * python/.cvsignore:
5986         * python/Makefile.am:
5987         * python/dbus_bindings.pyx.in:
5988         * python/dbus_h_wrapper.h:
5989
5990         Pieces for Pyrex to operate on, building a dbus_bindings.so
5991         python module for low-level access to the DBus APIs.
5992         
5993         * python/dbus.py:
5994
5995         High-level Python module for accessing DBus objects.
5996
5997         * configure.in:
5998         * Makefile.am:
5999
6000         Build stuff for the python bindings.
6001
6002         * acinclude.m4:
6003
6004         Extra macro needed for finding the Python C header files.
6005
6006 2003-09-21  Havoc Pennington  <hp@pobox.com>
6007
6008         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
6009         implementing the proxy manager, didn't get very far.
6010
6011         * dbus/dbus-bus.c (dbus_bus_add_match): new
6012         (dbus_bus_remove_match): new
6013
6014         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
6015         path_name argument; adjust the other not-yet-implemented 
6016         gproxy constructors to be what I think they should be.
6017
6018 2003-09-21  Havoc Pennington  <hp@pobox.com>
6019
6020         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
6021         by default for message bus connections.
6022
6023         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
6024         exit_on_disconnect flag is set and we process the disconnected
6025         signal.
6026         (dbus_connection_set_exit_on_disconnect): new function
6027
6028 2003-09-21  Havoc Pennington  <hp@pobox.com>
6029
6030         Get matching rules mostly working in the bus; only actually
6031         parsing the rule text remains. However, the client side of
6032         "signal connections" hasn't been started, this patch is only the
6033         bus side.
6034         
6035         * dbus/dispatch.c: fix for the matching rules changes
6036         
6037         * bus/driver.c (bus_driver_handle_remove_match)
6038         (bus_driver_handle_add_match): send an ack reply from these
6039         method calls
6040
6041         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
6042         arguments, reported by Seth Nickell
6043
6044         * bus/config-parser.c (append_rule_from_element): support
6045         eavesdrop=true|false attribute on policies so match rules 
6046         can be prevented from snooping on the system bus.
6047
6048         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
6049         and "destination" in attribute names; fix some docs bugs; 
6050         add eavesdrop=true|false attribute
6051
6052         * bus/driver.c (bus_driver_handle_add_match)
6053         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
6054         messages
6055
6056         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
6057         rid of broadcast service concept, signals are just always broadcast
6058
6059         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
6060         mostly implement matching rules stuff (currently only exposed as signal
6061         connections)
6062
6063 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
6064
6065         * doc/dbus-specification.sgml: Change the header field name
6066         to be an enum and update the rest of the spec to reference
6067         the fields using the conventinal name.
6068
6069         * dbus/dbus-protocol.h: update to reflect the spec.
6070
6071         * doc/TODO: add item to remove the 4 byte alignment requirement.
6072         
6073         * dbus/dbus-message.c: Remove the code to generalise the
6074         header/body length and serial number header fields as named
6075         header fields so we can reference field names using the 
6076         protocol values.
6077         (append_int_field), (append_uint_field), (append_string_field):
6078         Append the field name as a byte rather than four chars.
6079         (delete_int_or_uint_field), (delete_string_field): reflect the
6080         fact that the field name and typecode now occupy 4 bytes instead
6081         of 8.
6082         (decode_string_field), (decode_header_data): update to reflect
6083         protocol changes and move the field specific encoding from
6084         decode_string_field() back into decode_header_data().
6085         
6086         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
6087         Add utility to aid debugging.
6088         
6089         * dbus/dbus-message-builder.c:
6090         (append_string_field), (_dbus_message_data_load): Update to
6091         reflect protocol changes; Change the FIELD_NAME directive
6092         to HEADER_FIELD and allow it to take the field's conventional
6093         name rather than the actual value.
6094         
6095         * test/data/*/*.message: Update to use HEADER_FIELD instead
6096         of FIELD_NAME; Always align the header on an 8 byte boundary
6097         *before* updating the header length.
6098
6099 2003-09-15  Havoc Pennington  <hp@pobox.com>
6100
6101         * dbus/dbus-pending-call.c: add the get/set object data
6102         boilerplate as for DBusConnection, etc. Use generic object data
6103         for the notify callback.
6104
6105         * glib/dbus-gparser.c (parse_node): parse child nodes
6106
6107         * tools/dbus-viewer.c: more hacking on the dbus-viewer
6108         
6109         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
6110         contain functions shared between the convenience lib and the
6111         installed lib
6112
6113         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
6114         -export-symbols-regex to the GLib library
6115
6116         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
6117         fix the locking in here, and add a default handler for
6118         Introspect() that just returns sub-nodes.
6119
6120 2003-09-14  Havoc Pennington  <hp@pobox.com>
6121
6122         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
6123         rather than gfoo consistent
6124
6125         * glib/dbus-gproxy.h: delete for now, move contents to
6126         dbus-glib.h, because the include files don't work right since we
6127         aren't in the dbus/ subdir.
6128         
6129         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
6130         (dbus_gproxy_end_call): finish
6131         (dbus_gproxy_begin_call): finish
6132
6133         * glib/dbus-gmain.c (dbus_set_g_error): new
6134
6135         * glib/dbus-gobject.c (handle_introspect): include information
6136         about child nodes in the introspection
6137
6138         * dbus/dbus-connection.c (dbus_connection_list_registered): new
6139         function to help in implementation of introspection
6140
6141         * dbus/dbus-object-tree.c
6142         (_dbus_object_tree_list_registered_and_unlock): new function
6143
6144 2003-09-12  Havoc Pennington  <hp@pobox.com>
6145
6146         * glib/dbus-gidl.h: add common base class for all the foo_info
6147         types
6148
6149         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
6150         similar to kdcop
6151
6152         * test/Makefile.am: try test srcdir -ef . in addition to test
6153         srcdir = ., one of them should work (yeah lame)
6154         
6155         * glib/Makefile.am: build the "idl" parser stuff as a convenience
6156         library
6157         
6158         * glib/dbus-gparser.h: make description_load routines return
6159         NodeInfo* not Parser*
6160
6161         * Makefile.am (SUBDIRS): build test dir after all library dirs
6162
6163         * configure.in: add GTK+ detection
6164
6165 2003-09-07  Havoc Pennington  <hp@pobox.com>
6166
6167         * Make Doxygen contented.
6168
6169 2003-09-07  Havoc Pennington  <hp@pobox.com>
6170
6171         * doc/dbus-specification.sgml: more updates
6172
6173 2003-09-06  Havoc Pennington  <hp@pobox.com>
6174
6175         * doc/dbus-specification.sgml: partial updates
6176
6177         * bus/dbus-daemon-1.1.in: fix the config file docs for the
6178         zillionth time; hopefully I edited the right file this time.
6179
6180         * bus/config-parser.c (append_rule_from_element): support
6181         send_type, send_path, receive_type, receive_path
6182
6183         * bus/policy.c: add message type and path to the list of things
6184         that can be "firewalled"
6185
6186 2003-09-06  Havoc Pennington  <hp@pobox.com>
6187
6188         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
6189         (dbus_connection_register_object_path): make this not handle
6190         messages to paths below the given path
6191
6192 2003-09-03  Havoc Pennington  <hp@pobox.com>
6193
6194         * test/glib/Makefile.am: add this with random glib-linked test
6195         programs
6196
6197         * glib/Makefile.am: remove the random test programs from here,
6198         leave only the unit tests
6199
6200         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
6201         uscore/javacaps conversion, and fix     
6202         (get_object_property, set_object_property): change to .NET
6203         convention for mapping props to methods, set_FooBar/get_FooBar, 
6204         since one language has such a convention we may as well copy it. 
6205         Plus real methods in either getFooBar or get_foo_bar style won't 
6206         collide with this convention.
6207
6208 2003-09-01  Havoc Pennington  <hp@pobox.com>
6209
6210         * glib/dbus-gparser.c: implement
6211
6212         * glib/dbus-gobject.c: start implementing skeletons support
6213
6214         * configure.in: when disabling checks/assert, also define
6215         G_DISABLE_ASSERT and G_DISABLE_CHECKS
6216
6217 2003-09-01  Havoc Pennington  <hp@pobox.com>
6218
6219         * glib/Makefile.am: rearrange a bunch of files and get "make
6220         check" framework set up
6221
6222 2003-08-31  Havoc Pennington  <hp@pobox.com>
6223
6224         * fix build with --disable-tests
6225
6226 2003-08-30  Havoc Pennington  <hp@pobox.com>
6227
6228         * dbus/dbus-connection.c: purge DBusMessageHandler
6229
6230         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
6231         use callbacks everywhere
6232
6233 2003-08-30  Havoc Pennington  <hp@pobox.com>
6234
6235         * test/data/valid-config-files/system.d/test.conf: change to 
6236         root for the user so warnings don't get printed
6237
6238         * dbus/dbus-message.c: add dbus_message_get_path,
6239         dbus_message_set_path
6240         
6241         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
6242         dispatching to a path
6243
6244         * dbus/dbus-string.c (_dbus_string_validate_path): add
6245
6246         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
6247         (_dbus_marshal_object_path): implement
6248
6249         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
6250         to contain the path to the target object
6251         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
6252         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
6253
6254 2003-08-30  Havoc Pennington  <hp@pobox.com>
6255
6256         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
6257
6258 2003-08-29  Havoc Pennington  <hp@pobox.com>
6259
6260         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
6261         registered
6262         (struct DBusObjectSubtree): shrink this
6263         a lot, since we may have a lot of them
6264         (_dbus_object_tree_free_all_unlocked): implement
6265         (_dbus_object_tree_dispatch_and_unlock): implement
6266
6267 2003-08-29  Havoc Pennington  <hp@pobox.com>
6268
6269         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
6270
6271 2003-08-28  Havoc Pennington  <hp@pobox.com>
6272
6273         purge DBusObjectID
6274         
6275         * dbus/dbus-connection.c: port to no ObjectID, create a
6276         DBusObjectTree, rename ObjectTree to ObjectPath in public API
6277
6278         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
6279         everything except UnregisterFunction and MessageFunction
6280         
6281         * dbus/dbus-marshal.c: port away from DBusObjectID, 
6282         add DBUS_TYPE_OBJECT_PATH
6283         
6284         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
6285         dbus/dbus-objectid.[hc]: remove these, we are moving to 
6286         path-based object IDs
6287
6288 2003-08-25  Havoc Pennington  <hp@pobox.com>
6289
6290         Just noticed that dbus_message_test is hosed, I wonder when I
6291         broke that. I thought make check was passing earlier...
6292         
6293         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
6294         container tree, will replace most of dbus-object-registry
6295
6296         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
6297         screwup
6298
6299 2003-08-19  Havoc Pennington  <hp@pobox.com>
6300
6301         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
6302         (dbus_message_is_error): fix this function
6303
6304         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
6305         match
6306
6307         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
6308         reflect clarified man page
6309         (bus_client_policy_check_can_send): ditto
6310         
6311         * bus/session.conf.in: fixup
6312
6313         * bus/system.conf.in: fixup
6314
6315 2003-08-18  Havoc Pennington  <hp@redhat.com>
6316
6317         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
6318
6319         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
6320         dumb bug created earlier (wrong order of args to
6321         decode_header_data())
6322         
6323         * tools/dbus-send.c: port
6324
6325         * tools/dbus-print-message.c (print_message): port
6326
6327         * test/data/*messages: port all messages over
6328         
6329         * dbus/dbus-message-builder.c: support including 
6330         message type
6331         
6332         * bus/driver.c: port over
6333         
6334         * bus/dispatch.c: port over to new stuff
6335
6336         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6337         rename disconnect signal to "Disconnected"
6338
6339 2003-08-17  Havoc Pennington  <hp@pobox.com>
6340
6341         This doesn't compile yet, but syncing up so I can hack on it from
6342         work. What are branches for if not broken code? ;-)
6343         
6344         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
6345         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
6346         DBUS_HEADER_FIELD_ERROR_NAME
6347         
6348         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
6349         for the interface+member pairs
6350         (string_hash): change to use g_str_hash algorithm
6351         (find_direct_function, find_string_function): refactor these to
6352         share most code.
6353         
6354         * dbus/dbus-message.c: port all of this over to support 
6355         interface/member fields instead of name field
6356
6357         * dbus/dbus-object-registry.c: port over
6358         
6359         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
6360         from _dbus_string_validate_name
6361
6362         * bus/dbus-daemon-1.1: change file format for the 
6363         <deny>/<allow> stuff to match new message naming scheme
6364
6365         * bus/policy.c: port over
6366
6367         * bus/config-parser.c: parse new format
6368         
6369 2003-08-16  Havoc Pennington  <hp@pobox.com>
6370
6371         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
6372         broken assertion
6373
6374         * glib/dbus-gproxy.c: some hacking
6375
6376 2003-08-15  Havoc Pennington  <hp@redhat.com>
6377
6378         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
6379
6380         * dbus/dbus-connection.c
6381         (dbus_connection_send_with_reply_and_block): factor out internals;
6382         change to convert any error replies to DBusError instead of 
6383         returning them as a message
6384
6385 2003-08-15  Havoc Pennington  <hp@pobox.com>
6386
6387         * dbus/dbus-connection.c, 
6388         dbus/dbus-pending-call.c: Finish the pending call stuff
6389
6390 2003-08-14  Havoc Pennington  <hp@redhat.com>
6391
6392         * dbus/dbus-pending-call.c: start on new object that will replace
6393         DBusMessageHandler and ReplyHandlerData for tracking outstanding
6394         replies
6395
6396         * dbus/dbus-gproxy.c: start on proxy object used to communicate
6397         with remote interfaces
6398
6399         * dbus/dbus-gidl.c: do the boring boilerplate in here
6400         
6401 2003-08-12  Havoc Pennington  <hp@pobox.com>
6402
6403         * bus/dispatch.c (bus_dispatch): make this return proper 
6404         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
6405
6406         * dbus/dbus-errors.c (dbus_set_error): use
6407         _dbus_string_append_printf_valist
6408
6409         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
6410         (_dbus_string_append_printf): new
6411
6412         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
6413         UNKNOWN_METHOD
6414
6415         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
6416         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
6417         message is unhandled.
6418
6419 2003-08-11  Havoc Pennington  <hp@pobox.com>
6420
6421         * bus/test.c (client_disconnect_handler): change to return
6422         HANDLED (would have been REMOVE_MESSAGE)
6423
6424         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
6425         HANDLED/NOT_YET_HANDLED instead of
6426         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
6427         should be used.
6428
6429 2003-08-10  Havoc Pennington  <hp@pobox.com>
6430
6431         * tools/dbus-send.c (main): add --type argument, for now
6432         supporting only method_call and signal types.
6433
6434         * tools/dbus-print-message.c: print message type
6435
6436         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6437         init connection->objects
6438
6439         * doc/dbus-specification.sgml: fix sgml
6440
6441         * bus/*.c: port over to object-instance API changes
6442
6443         * test/test-service.c: ditto
6444         
6445         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
6446         name, we will have to fix up the rest of the code to also handle
6447         this
6448         (dbus_message_new): generic message-creation call
6449         (set_string_field): allow appending name field
6450
6451 2003-08-06  Havoc Pennington  <hp@pobox.com>
6452
6453         * dbus/dbus-object-registry.c: implement signal connection 
6454         and dispatch
6455
6456         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
6457
6458         * dbus/dbus-internals.c (_dbus_memdup): new function
6459
6460 2003-08-02  Havoc Pennington  <hp@pobox.com>
6461
6462         * dbus/dbus-message.c (dbus_message_get_no_reply)
6463         (dbus_message_set_no_reply): add these and remove
6464         set_is_error/get_is_error
6465
6466         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
6467         remove the ERROR flag, since there's now an ERROR type
6468
6469 2003-08-01  Havoc Pennington  <hp@pobox.com>
6470
6471         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
6472         implement
6473
6474         * dbus/dbus-message.c (dbus_message_get_type): new function
6475
6476         * doc/dbus-specification.sgml: add "type" byte to messages
6477
6478 2003-08-01  Havoc Pennington  <hp@pobox.com>
6479
6480         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
6481         a message type enum to distinguish kinds of message
6482         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
6483         that need not be replied to
6484
6485 2003-08-01  Havoc Pennington  <hp@pobox.com>
6486
6487         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
6488         (unpack_8_octets): fix no-64-bit-int bug
6489
6490         * dbus/dbus-object-registry.c (validate_id): validate the 
6491         connection ID bits, not just the instance ID.
6492
6493         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
6494         the connection-global 33 bits of the object ID
6495
6496         * dbus/dbus-object-registry.c (info_from_entry): fill in 
6497         object ID in the new way
6498
6499         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
6500         define server/client/instance bits.
6501
6502 2003-07-30  Havoc Pennington  <hp@pobox.com>
6503
6504         * dbus/dbus-connection.c (dbus_connection_register_object): fix
6505         build
6506
6507 2003-07-13  Havoc Pennington  <hp@pobox.com>
6508
6509         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
6510         fields to DBusObjectVTable and DBusObjectInfo
6511
6512 2003-07-12  Havoc Pennington  <hp@pobox.com>
6513
6514         * dbus/dbus-object-registry.c: implement unit test,
6515         fix bugs discovered in process
6516
6517         * dbus/dbus-connection.c: remove handler_table and
6518         register_handler(), add DBusObjectRegistry usage
6519
6520         * dbus/dbus-objectid.c (dbus_object_id_is_null)
6521         (dbus_object_id_set_null): new functions
6522
6523 2003-07-08  Havoc Pennington  <hp@pobox.com>
6524
6525         * dbus/dbus-object.c: implement some of this
6526
6527         * dbus/dbus-object-registry.c
6528         (_dbus_object_registry_add_and_unlock): fill in the object_id out
6529         param
6530         (_dbus_object_registry_new): handle OOM
6531
6532 2003-07-08  Havoc Pennington  <hp@pobox.com>
6533
6534         * dbus/dbus-object.h: sketch out an API for registering objects
6535         with a connection, that allows us to use as little as 24 bytes
6536         per object and lets application code represent an object in 
6537         any conceivable way.
6538
6539         * dbus/dbus-object-registry.c: implement the hard bits of the
6540         DBusConnection aspect of object API. Not yet wired up.
6541         
6542 2003-07-06  Havoc Pennington  <hp@pobox.com>
6543
6544         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
6545         (_dbus_marshal_object_id): new
6546         (_dbus_demarshal_object_id): new
6547         (_dbus_marshal_get_arg_end_pos): support object ID type, and
6548         consolidate identical switch cases. Don't conditionalize handling
6549         of DBUS_TYPE_UINT64, need to handle the type always.
6550         (_dbus_marshal_validate_arg): consolidate identical cases, and
6551         handle DBUS_TYPE_OBJECT_ID
6552
6553         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
6554
6555         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
6556
6557 2003-09-28  Havoc Pennington  <hp@pobox.com>
6558
6559         * real 0.13 release
6560
6561 2003-09-28  Havoc Pennington  <hp@pobox.com>
6562
6563         * doc/Makefile.am (dbus-specification.html): testing a funky hack
6564         to work with Debian db2html
6565
6566 2003-09-28  Havoc Pennington  <hp@pobox.com>
6567
6568         * configure.in: 0.13
6569
6570         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
6571         stylesheet-images for benefit of Debian
6572         
6573         Change back to using filesystem-linked sockets for the system
6574         bus, so only root can create the default system bus address.
6575         
6576         * bus/system.conf.in: change to use
6577         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6578
6579         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
6580         from here.
6581
6582         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6583         here, and AC_DEFINE DBUS_SYSTEM_PATH
6584
6585 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
6586
6587         * doc/TODO:
6588         * doc/busconfig.dtd:
6589         Add busconfig DTD.
6590         
6591 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
6592
6593         * doc/dbus-specification.sgml:
6594         Add activation reply values.
6595         
6596 2003-08-05  Havoc Pennington  <hp@redhat.com>
6597
6598         * configure.in: 0.12
6599
6600 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
6601
6602         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
6603         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
6604         (add_watch), (remove_watch), (create_source):
6605         Refcount fds, fixes some reentrancy issues.
6606         
6607 2003-07-30  Havoc Pennington  <hp@redhat.com>
6608
6609         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
6610         bus address to be abstract if we have abstract sockets
6611
6612         * NEWS: update
6613
6614 2003-07-28  Havoc Pennington  <hp@redhat.com>
6615
6616         * bus/messagebus.in: fix to avoid processname/servicename 
6617         confusion, from Michael Kearey
6618         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
6619         
6620 2003-07-23  Havoc Pennington  <hp@pobox.com>
6621
6622         * dbus/dbus-message.c (dbus_message_iter_get_named): 
6623         fix from Andy Hanton to remove broken "+1"
6624
6625 2003-07-16  Havoc Pennington  <hp@pobox.com>
6626
6627         * tools/dbus-launch.c (babysit): close stdout/stderr in the
6628         babysitter process, as suggested by Thomas Leonard, so 
6629         an "eval `dbus-launch --exit-with-session`" will actually 
6630         return
6631
6632 2003-07-16  Havoc Pennington  <hp@pobox.com>
6633
6634         * configure.in: print out EXPANDED_* variables in the summary at
6635         the end; clean up the code that computes EXPANDED_ variables and
6636         get the ones using exec_prefix right. Should make things work
6637         when you build without --prefix
6638
6639 2003-06-29  Havoc Pennington  <hp@pobox.com>
6640
6641         * mono/Test.cs (class Test): fire up a main loop and run it
6642
6643         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
6644         done once, the app has to do it
6645
6646 2003-06-26  Havoc Pennington  <hp@pobox.com>
6647
6648         * mono/Connection.cs: set up connection with the glib main loop
6649
6650 2003-07-01  Havoc Pennington  <hp@redhat.com>
6651
6652         * doc/dbus-specification.sgml: clarify the format of a type code,
6653         change suggested by Jim Blandy
6654
6655 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
6656
6657         * doc/Makefile.am:
6658         * tools/Makefile.am: Don't assume srcdir == builddir.
6659
6660         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
6661         the allocated block.
6662         (_dbus_memory_test): New function.
6663         * dbus/dbus-test.h: Add _dbus_memory_test ().
6664         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
6665
6666         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
6667         of %c%c%c%c.
6668         (dbus_message_new): Remove obsolete @todo.
6669
6670         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
6671         (_dbus_marshal_set_uint64): Fix comment.
6672
6673         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
6674         hardcode FIELD_REPLY_SERIAL.
6675
6676         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
6677         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
6678
6679         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
6680         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
6681
6682 2003-06-24  Havoc Pennington  <hp@pobox.com>
6683
6684         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
6685
6686 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
6687
6688         * configure.in:
6689         * gcj/.cvsignore:
6690         * gcj/Hello.java:
6691         * gcj/Makefile.am:
6692         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
6693         * gcj/org/.cvsignore:
6694         * gcj/org/Makefile.am:
6695         * gcj/org/freedesktop/.cvsignore:
6696         * gcj/org/freedesktop/Makefile.am:
6697         * gcj/org/freedesktop/dbus/.cvsignore:
6698         * gcj/org/freedesktop/dbus/Makefile.am:
6699         * gcj/org/freedesktop/dbus/Message.java: (Message),
6700         (Message.Message):
6701         * gcj/org/freedesktop/dbus/natMessage.cc:
6702         Fix the build system.
6703
6704 2003-06-22  Havoc Pennington  <hp@pobox.com>
6705
6706         * mono/Connection.cs: add more bindings
6707
6708         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
6709         more than once.
6710
6711 2003-06-22  Havoc Pennington  <hp@pobox.com>
6712
6713         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
6714         Start wrapping more stuff.
6715
6716 2003-06-22  Havoc Pennington  <hp@pobox.com>
6717
6718         * mono/Message.cs: implement Message.Wrap() that ensures we only
6719         have a single C# wrapper per DBusMessage, assuming it works which
6720         it probably doesn't.
6721
6722         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
6723         (dbus_message_free_data_slot): new
6724         (dbus_message_set_data): new
6725         (dbus_message_get_data): new
6726
6727 2003-06-22  Havoc Pennington  <hp@pobox.com>
6728
6729         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
6730         (_dbus_data_slot_allocator_alloc): rework these to keep a
6731         reference count on each slot and automatically manage a global
6732         slot ID variable passed in by address
6733
6734         * bus/bus.c: convert to new dataslot API
6735
6736         * dbus/dbus-bus.c: convert to new dataslot API
6737
6738         * dbus/dbus-connection.c: convert to new dataslot API
6739
6740         * dbus/dbus-server.c: convert to new dataslot API
6741
6742         * glib/dbus-gmain.c: ditto
6743
6744         * bus/test.c: ditto
6745
6746         * bus/connection.c: ditto
6747
6748 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
6749
6750         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
6751         after the gcj checks so that the correct configuration tags
6752         will be added to libtool.
6753
6754         * dbus-glib-1.pc.in: No need to specify any includes since
6755         dbus-1.pc.in has those.
6756
6757 2003-06-22  Havoc Pennington  <hp@pobox.com>
6758
6759         * mono/*, gcj/*, configure.in, Makefile.am:
6760         Check in makefiles and subdirs for mono and gcj bindings.
6761         Neither binding actually exists, just trying to get through
6762         all the build and other boring bits.
6763
6764 2003-06-21  Philip Blundell  <philb@gnu.org>
6765
6766         * tools/dbus-monitor.1: Updated.
6767
6768         * tools/dbus-send.1: Likewise.
6769
6770 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
6771
6772         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
6773         for hangup and error after checking read so we won't discard
6774         pending data if both hangup and read are set.
6775
6776 2003-06-19  Philip Blundell  <philb@gnu.org>
6777
6778         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
6779
6780         * tools/dbus-send.c: Accept both --system and --session.
6781
6782         * tools/dbus-monitor.c: Same here.
6783
6784 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
6785
6786         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
6787         from C++ (Patch by Miloslav Trmac).
6788
6789 2003-06-15  Joe Shaw  <joe@assbarn.com>
6790
6791         * configure.in: Check for socklen_t.
6792
6793         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
6794
6795         * test/test-segfault.c: Add #include <sys/time.h>
6796
6797         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
6798         dbus-launch needs it.
6799
6800 2003-06-09  Havoc Pennington  <hp@redhat.com>
6801
6802         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
6803         SUN_LEN, it breaks abstract socket usage
6804
6805         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
6806         starts of lines.
6807
6808 2003-06-04  Havoc Pennington  <hp@pobox.com>
6809
6810         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
6811         using unix:abstract=/foo, and when listening in a tmpdir
6812         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
6813
6814         * dbus/dbus-transport.c (_dbus_transport_open): support
6815         unix:abstract=/foo
6816
6817         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
6818         support abstract sockets
6819
6820         * dbus/dbus-transport-unix.c
6821         (_dbus_transport_new_for_domain_socket): support abstract sockets
6822
6823         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
6824         toggle as an argument, implement abstract namespace support
6825         (_dbus_listen_unix_socket): ditto
6826
6827         * configure.in: add --enable-abstract-sockets and implement
6828         a configure check for autodetection of the right value.
6829
6830 2003-06-01  Havoc Pennington  <hp@pobox.com>
6831
6832         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
6833         in /tmp (though on Linux this will end up being useless,
6834         when we add abstract namespace support)
6835
6836         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
6837         subst'ing it
6838
6839 2003-05-28  Colin Walters  <walters@verbum.org>
6840
6841         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
6842
6843 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
6844
6845         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
6846
6847 2003-05-17  Colin Walters  <walters@gnu.org>
6848
6849         * tools/dbus-send.c: Don't exit with an error code if --help was
6850         passed.  Default to using the session bus instead of the system
6851         one.
6852
6853         * tools/dbus-launch.c: Ditto.
6854
6855         * tools/dbus-monitor.c: Ditto.
6856
6857         * tools/dbus-send.1: Update with new arguments.
6858
6859         * tools/dbus-launch.c: Emit code to export variables.  New
6860         arguments -s and -c to specify shell syntax, and a bit of code to
6861         autodetect syntax.  Also, allow specifying a program to run.
6862
6863         * tools/dbus-launch.1: Update with new arguments.
6864
6865         * tools/dbus-send.1: Ditto.
6866
6867         * tools/dbus-monitor.1: Ditto.
6868
6869 2003-05-17  Havoc Pennington  <hp@pobox.com>
6870
6871         * bus/config-parser.c (merge_included): merge in policies from
6872         child configuration file.
6873
6874         * bus/policy.c (bus_policy_merge): function to merge two policies
6875         together
6876
6877 2003-05-16  Havoc Pennington  <hp@redhat.com>
6878
6879         * dbus/dbus-connection.c: disable verbose lock spew
6880
6881         * tools/dbus-send.c: add --print-reply command line option
6882
6883         * tools/dbus-print-message.h (print_message): new util function
6884         shared by dbus-send and dbus-monitor
6885
6886         * tools/dbus-monitor.c (handler_func): exit on disconnect
6887
6888         * dbus/dbus-transport-unix.c (do_reading): if the transport is
6889         disconnected, don't try to use the read_watch
6890
6891         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
6892         so we can find this bug more easily
6893
6894 2003-05-16  Havoc Pennington  <hp@redhat.com>
6895
6896         * bus/policy.c (free_rule_list_func): avoid a crash when passed
6897         NULL as DBusHashTable is annoyingly likely to do.
6898
6899 2003-05-16  Colin Walters  <walters@verbum.org>
6900
6901         * tools/dbus-monitor.c: Add --session argument and usage()
6902         function.
6903
6904         * tools/dbus-monitor.1: Update with new --session arg.
6905
6906         * bus/Makefile.am (install-data-hook): Create
6907         $(libdir)/dbus-1.0/services so that the session bus is happy.
6908
6909 2003-05-15  Havoc Pennington  <hp@redhat.com>
6910
6911         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
6912         on non-x86. ifdef's are evil.
6913
6914 2003-05-15  Havoc Pennington  <hp@redhat.com>
6915
6916         * configure.in: 0.11
6917
6918         * NEWS: update
6919
6920         * bus/Makefile.am (initddir): apparently we are supposed to put
6921         init scripts in /etc/rc.d/init.d not /etc/init.d
6922
6923         * bus/Makefile.am: remove the "you must --enable-tests to make
6924         check" as it broke distcheck
6925
6926         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
6927
6928 2003-05-13  James Willcox  <jwillcox@gnome.org>
6929
6930         * configure.in:
6931         * bus/activation.c: (bus_activation_service_created),
6932         (bus_activation_activate_service):
6933         * bus/driver.c: (bus_driver_send_service_deleted),
6934         (bus_driver_send_service_created), (bus_driver_send_service_lost),
6935         (bus_driver_send_service_acquired),
6936         (bus_driver_send_welcome_message),
6937         (bus_driver_handle_list_services):
6938         * bus/session.conf.in:
6939         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
6940         (dbus_bus_service_exists), (dbus_bus_activate_service):
6941         * dbus/dbus-bus.h:
6942
6943         Add some convenience API which lets you activate a service, and did a
6944         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
6945         and dbus_message_get_args()
6946
6947 2003-05-11  Havoc Pennington  <hp@pobox.com>
6948
6949         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
6950         calling _dbus_marshal_validate_arg() for every byte in a byte
6951         array, etc.
6952
6953         * dbus/dbus-message-handler.c: use atomic reference counting to
6954         reduce number of locks slightly; the global lock in here sucks
6955
6956         * dbus/dbus-connection.c
6957         (_dbus_connection_update_dispatch_status_and_unlock): variant of
6958         update_dispatch_status that can be called with lock held; then use
6959         in a couple places to reduce locking/unlocking
6960         (dbus_connection_send): hold the lock over the whole function
6961         instead of acquiring it twice.
6962
6963         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
6964
6965         * bus/connection.c (bus_connections_setup_connection): fix access
6966         to already-freed memory.
6967
6968         * dbus/dbus-connection.c: keep a little cache of linked list
6969         nodes, to avoid using the global linked list alloc lock in the
6970         normal send-message case. Instead we just use the connection lock
6971         that we already have to take.
6972
6973         * dbus/dbus-list.c (_dbus_list_find_last): new function
6974
6975         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
6976         change to use a struct for the atomic type; fix docs,
6977         they return value before increment, not after increment.
6978
6979         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
6980         (_dbus_string_append_8_aligned): new functions to try to
6981         microoptimize this operation.
6982         (reallocate_for_length): break this out of set_length(), to
6983         improve profile info, and also so we can consider inlining the
6984         set_length() part.
6985
6986         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
6987         strings with some preallocation, cuts down on our calls to realloc
6988         a fair bit. Though if we can get the "move entire string to empty
6989         string" optimization below to kick in here, it would be better.
6990
6991         * dbus/dbus-string.c (_dbus_string_move): just call
6992         _dbus_string_move_len
6993         (_dbus_string_move_len): add a special case for moving
6994         an entire string into an empty string; we can just
6995         swap the string data instead of doing any reallocs.
6996         (_dbus_string_init_preallocated): new function
6997
6998 2003-05-11  Havoc Pennington  <hp@pobox.com>
6999
7000         Write a "test-profile" that does echo client-server with threads;
7001         profile reveals lock contention, memcpy/realloc of buffers, and
7002         UTF-8 validation as hot spots. 20% of lock contention eliminated
7003         with dbus_atomic_inc/dec implementation on x86.  Much remaining
7004         contention is global mempool locks for GList and DBusList.
7005
7006         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
7007         x86 implementation
7008
7009         * dbus/dbus-connection.c (struct DBusConnection): use
7010         dbus_atomic_t for the reference count
7011
7012         * dbus/dbus-message.c (struct DBusMessage): declare
7013         dbus_atomic_t values as volatile
7014
7015         * configure.in: code to detect ability to use atomic integer
7016         operations in assembly, from GLib patch
7017
7018         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
7019         time, tired of it being wrong in threads and forked processes
7020
7021         * glib/test-profile.c: a little program to bounce messages back
7022         and forth between threads and eat CPU
7023
7024         * dbus/dbus-connection.c: add debug spew macros for debugging
7025         thread locks; include config.h at top; fix deadlock in
7026         dbus_connection_flush()
7027
7028 2003-05-08  Havoc Pennington  <hp@pobox.com>
7029
7030         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
7031         data from getting written, and there wasn't a good reason to
7032         use _exit really.
7033
7034         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
7035         dbus_verbose lines in test coverage
7036         (main): add list of functions sorted by # of untested blocks
7037         to the coverage report
7038
7039         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
7040
7041         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
7042
7043         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
7044         extend test coverage
7045
7046         * test/data/auth/cancel.auth-script: test canceling an
7047         authentication
7048
7049         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
7050         aren't used. in CVS history if we end up needing them.
7051
7052 2003-05-04  Havoc Pennington  <hp@pobox.com>
7053
7054         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
7055         unit test
7056
7057         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
7058         function, which assumed length was in # of strings, not bytes
7059
7060         * dbus/dbus-message.c (_dbus_message_test): add tests for some
7061         missing coverage
7062
7063         * dbus/dbus-connection.c
7064         (_dbus_connection_queue_received_message): disable function for
7065         now, we are only using it in test mode
7066
7067         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7068         remove a mistaken FIXME
7069
7070 2003-05-04  Havoc Pennington  <hp@pobox.com>
7071
7072         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
7073         unlock mutex on successful return, patch from Anders Gustafsson
7074
7075 2003-05-04  Havoc Pennington  <hp@pobox.com>
7076
7077         * dbus-glib-1.pc.in (Requires): fix dependencies, from
7078         Anders Gustafsson
7079
7080 2003-05-04  Havoc Pennington  <hp@pobox.com>
7081
7082         * tools/dbus-launch.c: implement
7083
7084         * bus/main.c (main), bus/bus.c (bus_context_new):
7085         implement --print-pid and --fork
7086
7087 2003-05-03  Havoc Pennington  <hp@redhat.com>
7088
7089         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
7090         the address had no value, and add to test suite. Fix and
7091         regression test from Miloslav Trmac
7092
7093 2003-05-03  Havoc Pennington  <hp@pobox.com>
7094
7095         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
7096         watch is invalid when handled
7097
7098         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
7099         dbus-launch utility to launch the bus from a shell script.  Didn't
7100         actually implement dbus-launch yet, it's just a placeholder still.
7101
7102 2003-05-03  Havoc Pennington  <hp@pobox.com>
7103
7104         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
7105         daemon; also documents daemon config file, so replaces
7106         doc/config-file.txt. Corrected some stuff from config-file.txt in
7107         the process of moving it.
7108
7109 2003-05-03  Havoc Pennington  <hp@pobox.com>
7110
7111         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
7112         add some man pages
7113
7114 2003-05-03  Colin Walters  <walters@verbum.org>
7115
7116         * dbus/dbus-sysdeps.c (fill_user_info): Test against
7117         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
7118
7119         * Makefile.am: Update to use new .pc versioning scheme.
7120
7121 2003-05-02  Havoc Pennington  <hp@redhat.com>
7122
7123         * bus/system.conf.in: allow send/receive to/from message bus
7124         service
7125
7126 2003-04-30  Havoc Pennington  <hp@redhat.com>
7127
7128         * configure.in: print a note when building with unit tests and
7129         without assertions
7130
7131 2003-04-30  Havoc Pennington  <hp@redhat.com>
7132
7133         * Makefile.am: add a check-local that complains if you didn't
7134         configure with --enable-tests
7135
7136 2003-04-29  Havoc Pennington  <hp@redhat.com>
7137
7138         * glib/dbus-gmain.c: docs cleanups
7139
7140         * dbus/dbus-types.h: add docs on int64 types
7141
7142         * dbus/dbus-memory.c: fix docs to avoid putting private API in
7143         public API docs section
7144
7145 2003-04-29  Havoc Pennington  <hp@redhat.com>
7146
7147         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
7148         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
7149         parallel install API version, not with the D-BUS package version.
7150
7151         * HACKING: move some of README over here
7152
7153         * README: updates, and document API/ABI policy
7154
7155         * configure.in: reindentation
7156
7157 2003-04-29  Havoc Pennington  <hp@redhat.com>
7158
7159         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
7160         to use this library" to be sure people have the right
7161         expectations.
7162
7163 2003-04-28  Havoc Pennington  <hp@redhat.com>
7164
7165         * configure.in: add --enable-docs which by default is auto yes if
7166         doxygen and db2html found, no otherwise; but can be forced on/off
7167
7168         * doc/Makefile.am: conditionalize whether to build docs on
7169         --enable-docs
7170
7171 2003-04-28  Havoc Pennington  <hp@redhat.com>
7172
7173         * configure.in: 0.10
7174
7175         * NEWS: update
7176
7177         * bus/system.conf.in: add <includedir>system.d</includedir>
7178
7179         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
7180         username was provided but not uid
7181
7182         * bus/config-parser.c (struct BusConfigParser): keep track of
7183         whether the parser is toplevel or was included; change some
7184         of the error handling if it's included.
7185
7186 2003-04-27  Havoc Pennington  <hp@pobox.com>
7187
7188         Unbreak my code...
7189
7190         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7191         report correct status if we finish processing authentication
7192         inside this function.
7193
7194         * bus/activation.c (try_send_activation_failure): use
7195         bus_transaction_send_error_reply
7196
7197         * bus/connection.c (bus_connection_get_groups): return an error
7198         explaining the problem
7199
7200         * bus/bus.c (bus_context_check_security_policy): implement
7201         restriction here that inactive connections can only send the
7202         hello message. Also, allow bus driver to send anything to
7203         any recipient.
7204
7205         * bus/connection.c (bus_connection_complete): create the
7206         BusClientPolicy here instead of on-demand.
7207         (bus_connection_get_policy): don't return an error
7208
7209         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
7210         sender field in message being replied to
7211
7212         * bus/bus.c (bus_context_check_security_policy): fix silly typo
7213         causing it to return FALSE always
7214
7215         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
7216         we checked sender rather than destination
7217
7218 2003-04-25  Havoc Pennington  <hp@redhat.com>
7219
7220         test suite is slightly hosed at the moment, will fix soon
7221
7222         * bus/connection.c (bus_connections_expire_incomplete): fix to
7223         properly disable the timeout when required
7224         (bus_connection_set_name): check whether we can remove incomplete
7225         connections timeout after we complete each connection.
7226
7227         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
7228         probably still broken.
7229
7230         * bus/services.c (bus_registry_acquire_service): implement max
7231         number of services owned, and honor allow/deny rules on which
7232         services a connection can own.
7233
7234         * bus/connection.c (bus_connection_get_policy): report errors here
7235
7236         * bus/activation.c: implement limit on number of pending
7237         activations
7238
7239 2003-04-25  Havoc Pennington  <hp@redhat.com>
7240
7241         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
7242         where we used >= 0 instead of != DBUS_UID_UNSET.
7243
7244 2003-04-25  Havoc Pennington  <hp@redhat.com>
7245
7246         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
7247         were toggled without add/remove, fix from Anders Gustafsson
7248
7249 2003-04-24  Havoc Pennington  <hp@redhat.com>
7250
7251         * test/data/valid-config-files/basic.conf: add <limit> tags to
7252         this test
7253
7254         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
7255         <limit> tag in configuration file.
7256
7257 2003-04-24  Havoc Pennington  <hp@redhat.com>
7258
7259         * bus/dispatch.c: somehow missed some name_is
7260
7261         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
7262         (_dbus_timeout_set_interval): new
7263
7264         * bus/connection.c (bus_connections_setup_connection): record time
7265         when each connection is first set up, and expire them after the
7266         auth timeout passes.
7267
7268 2003-04-24  Havoc Pennington  <hp@redhat.com>
7269
7270         * dbus/dbus-message.c (dbus_message_name_is): rename
7271         (dbus_message_service_is): rename
7272         (dbus_message_sender_is): rename
7273         (dbus_message_get_service): rename
7274
7275 2003-04-24  Havoc Pennington  <hp@redhat.com>
7276
7277         * configure.in: add --enable-checks
7278
7279         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
7280
7281         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
7282         to use thread locks.
7283         (_dbus_connection_handler_destroyed_locked): move some private
7284         functions into proper docs group
7285
7286         * dbus/dbus-internals.h: add _dbus_return_if_fail,
7287         _dbus_return_val_if_fail
7288
7289         Throughout: use dbus_return_if_fail
7290
7291 2003-04-23  James Willcox  <jwillcox@gnome.org>
7292
7293         * glib/dbus-glib.h:
7294         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
7295         (dbus_connection_setup_with_g_main),
7296         (dbus_server_setup_with_g_main):
7297         * glib/test-dbus-glib.c: (main):
7298         * glib/test-thread-client.c: (main):
7299         * glib/test-thread-server.c: (new_connection_callback), (main):
7300         * tools/dbus-monitor.c: (main):
7301
7302         Added a GMainContext argument to dbus_connection_setup_with_g_main()
7303         and dbus_server_setup_with_g_main().
7304
7305 2003-04-20  Havoc Pennington  <hp@pobox.com>
7306
7307         * doc/dbus-specification.sgml: document the restrictions on
7308         message and service names
7309
7310 2003-04-22  Havoc Pennington  <hp@redhat.com>
7311
7312         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
7313         support, and do some code cleanups to share more code and
7314         speed up array marshal/demarshal.
7315
7316         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
7317
7318         * configure.in: generate dbus-arch-deps.h
7319
7320         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
7321         64-bit typecodes
7322
7323 2003-04-22  Havoc Pennington  <hp@redhat.com>
7324
7325         * test/data/valid-messages/opposite-endian.message: fix test
7326         to use proper type for rply field
7327
7328         * test/data/invalid-messages: add tests for below validation
7329
7330         * dbus/dbus-message.c (decode_header_data): validate field types,
7331         and validate that named fields are valid names
7332         (decode_name_field): consider messages in the
7333         org.freedesktop.Local. namespace to be invalid.
7334
7335         * dbus/dbus-string.c (_dbus_string_validate_name): new
7336
7337 2003-04-19  Havoc Pennington  <hp@pobox.com>
7338
7339         * bus/driver.c (bus_driver_handle_hello): check limits and
7340         return an error if they are exceeded.
7341
7342         * bus/connection.c: maintain separate lists of active and inactive
7343         connections, and a count of each. Maintain count of completed
7344         connections per user. Implement code to check connection limits.
7345
7346         * dbus/dbus-list.c (_dbus_list_unlink): export
7347
7348         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
7349         number of bytes in the message queue for a connection
7350
7351 2003-04-18  Havoc Pennington  <hp@pobox.com>
7352
7353         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
7354
7355         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
7356         memleaks
7357
7358         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
7359         on realloc be sure to update the pointer in the keyring
7360
7361         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
7362         offset to avoid writing to unallocated memory
7363
7364         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
7365         try the next mechanism, so we properly handle OOM
7366
7367         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
7368         on OOM.
7369         (_dbus_keyring_new): fix OOM bug
7370         (_dbus_keyring_new_homedir): always set error; impose a maximum
7371         number of keys we'll load from the file, mostly to speed up the
7372         test suite and make its OOM checks more useful, but also for
7373         general sanity.
7374
7375         * dbus/dbus-auth.c (process_error_server): reject authentication
7376         if we get an error from the client
7377         (process_cancel): on cancel, send REJECTED, per the spec
7378         (process_error_client): send CANCEL if we get an error from the
7379         server.
7380
7381 2003-04-18  Havoc Pennington  <hp@pobox.com>
7382
7383         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
7384         debug spew
7385
7386         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
7387         handling problem
7388
7389         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
7390         about DBUS_TEST_HOMEDIR once
7391
7392         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
7393         the environment
7394
7395         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
7396         config file so we test the right thing
7397
7398         Throughout: assorted docs improvements
7399
7400 2003-04-18  Havoc Pennington  <hp@pobox.com>
7401
7402         * glib/dbus-gmain.c: adapt to watch changes
7403
7404         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
7405
7406         * dbus/dbus-server.h: remove dbus_server_handle_watch
7407
7408         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
7409
7410         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
7411         like DBusTimeout, so we don't need dbus_connection_handle_watch
7412         etc.
7413
7414 2003-04-17  Havoc Pennington  <hp@redhat.com>
7415
7416         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
7417         database usage so it all goes via the DBusUserDatabase cache.
7418
7419 2003-04-17  Havoc Pennington  <hp@redhat.com>
7420
7421         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
7422         there was an OOM watch we skipped, we always return TRUE so we
7423         iterate again to have a look at it again. Fixes test suite hang.
7424         Code rearrangement also lets us lose some memset and only iterate
7425         over callbacks once.
7426
7427         * bus/driver.c (bus_driver_handle_message): sense of test for
7428         reply was backward
7429
7430 2003-04-16  Havoc Pennington  <hp@pobox.com>
7431
7432         * doc/dbus-specification.sgml: make spec say serials are unsigned
7433
7434         * dbus/dbus-message.h: change message serials to unsigned
7435
7436         * dbus/dbus-connection.c: adapt to message serials being unsigned
7437
7438 2003-04-15  Havoc Pennington  <hp@pobox.com>
7439
7440         * bus/bus.c: create and keep around a shared DBusUserDatabase
7441         object.
7442
7443         * bus/connection.c (bus_connection_get_groups): don't cache
7444         groups for user in the connection object, since user database
7445         object now does that.
7446
7447 2003-04-16  Havoc Pennington  <hp@redhat.com>
7448
7449         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
7450         list of size counters
7451         (_dbus_message_loader_putback_message_link): put back a popped link
7452
7453         * dbus/dbus-connection.c
7454         (dbus_connection_set_max_live_messages_size): rename
7455         max_received_size
7456         (dbus_connection_get_outgoing_size): get size of outgoing
7457         queue
7458         (_dbus_connection_set_connection_counter): remove this cruft
7459
7460 2003-04-14  Havoc Pennington  <hp@redhat.com>
7461
7462         * dbus/dbus-userdb.c: user database abstraction, mostly to get
7463         caching, but at some point we might want to be able to use a
7464         different database.
7465
7466         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
7467         SHA1 conf file to test the sha1 auth mechanism, since the regular
7468         test always uses EXTERNAL when available.
7469
7470         * configure.in,
7471         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
7472         add conf file that requires use of sha1 auth
7473
7474 2003-04-13  Havoc Pennington  <hp@pobox.com>
7475
7476         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
7477         from Philip Blundell to send messages and monitor them.
7478
7479 2003-04-13  Havoc Pennington  <hp@pobox.com>
7480
7481         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
7482         callbacks
7483
7484         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
7485         users
7486
7487         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7488         fix to only recover unused bytes if we're already authenticated
7489         (_dbus_transport_get_is_authenticated): fix to still mark us
7490         authenticated if there are unused bytes.
7491
7492         * bus/dispatch.c: implement security policy checking
7493
7494         * bus/connection.c (bus_transaction_send_from_driver): new
7495
7496         * bus/bus.c (bus_context_check_security_policy): new
7497
7498         * bus/dispatch.c (send_service_nonexistent_error): delete this,
7499         now we just set the DBusError and it gets converted to an error
7500         reply.
7501
7502         * bus/connection.c (allow_user_function): enable code using actual
7503         data from the config file
7504
7505         * bus/policy.c (list_allows_user): handle wildcard rules for
7506         user/group connection perms
7507
7508 2003-04-13  Havoc Pennington  <hp@pobox.com>
7509
7510         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
7511
7512         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
7513
7514         * bus/policy.c (bus_policy_append_mandatory_rule)
7515         (bus_policy_append_default_rule, bus_policy_append_user_rule)
7516         (bus_policy_append_group_rule): new functions
7517
7518 2003-04-12  Havoc Pennington  <hp@pobox.com>
7519
7520         * bus/config-parser.c (bus_config_parser_new): fix a memleak
7521
7522         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
7523         the pid/gid/uid, just for paranoia.
7524
7525         * test/break-loader.c (randomly_do_n_things): find a byte
7526         containing a type code, and randomly change it to a different
7527         type code.
7528
7529 2003-04-12  Havoc Pennington  <hp@pobox.com>
7530
7531         * bus/policy.h: change BusPolicy to be the thing from the config
7532         file, and rename old BusPolicy to BusClientPolicy
7533
7534         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
7535         match change in how policy works
7536
7537         * dbus/dbus-internals.h: mark assert_not_reached as
7538         __attribute((noreturn))__
7539
7540 2003-04-11  Havoc Pennington  <hp@redhat.com>
7541
7542         * doc/dbus-specification.sgml: fix a spot with the wrong name for
7543         the broadcast service. Use boolean return for ServiceExists.
7544
7545 2003-04-11  Havoc Pennington  <hp@redhat.com>
7546
7547         * configure.in: add another directory to look for qt in.
7548
7549 2003-04-11  Havoc Pennington  <hp@redhat.com>
7550
7551         * AUTHORS: add Colin Walters
7552
7553 2003-04-11  Havoc Pennington  <hp@redhat.com>
7554
7555         * NEWS: update
7556
7557         * configure.in: 0.9
7558
7559 2003-04-11  Havoc Pennington  <hp@redhat.com>
7560
7561         * bus/messagebus.in: remove pid file when stopping the
7562         message bus, since the bus won't have privileges to remove it
7563         itself.
7564
7565 2003-04-11  Havoc Pennington  <hp@redhat.com>
7566
7567         * bus/bus.c (bus_context_new): move credentials change after
7568         creating pidfile
7569
7570 2003-04-11  Havoc Pennington  <hp@pobox.com>
7571
7572         * test/decode-gcov.c: add "below average functions" to the
7573         coverage report, and change how some of the code works.
7574
7575         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
7576         not in the coverage stats.
7577
7578         * test/test-service.c (main): use _dbus_verbose not fprintf in a
7579         couple places so running the test suite doesn't result in megaspam.
7580
7581 2003-04-11  Havoc Pennington  <hp@pobox.com>
7582
7583         * bus/dispatch.c (check_existent_service_activation): accept a no
7584         memory error in a place we didn't before
7585
7586         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
7587         in case the first one failed," since the test suite is less
7588         broken now.
7589
7590 2003-04-10  Havoc Pennington  <hp@pobox.com>
7591
7592         * bus/dispatch.c (check_segfault_service_activation): add test
7593         for launching an executable that just crashes.
7594
7595         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
7596         don't leave a million cores. We'll see how portable this is.
7597
7598 2003-04-10  Havoc Pennington  <hp@pobox.com>
7599
7600         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
7601         the possible parent failures before we fork, so that we don't
7602         fail to create a babysitter after creating the child.
7603
7604         * bus/activation.c (bus_activation_activate_service): kill child
7605         if we don't successfully complete the activation.
7606
7607 2003-04-10  Havoc Pennington  <hp@redhat.com>
7608
7609         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
7610         the connection if it's disconnected
7611
7612         * bus/activation.c (bus_activation_service_created): use new
7613         transaction features to roll back removal of pending activation if
7614         we don't successfully create the service after all. Don't remove
7615         pending activation if the function fails.
7616
7617         * dbus/dbus-list.c (_dbus_list_insert_before_link)
7618         (_dbus_list_insert_after_link): new code to facilitate
7619         services.c fixes
7620
7621         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
7622         new functionality, so we can preallocate the ability to insert
7623         into a hash table.
7624
7625         * bus/connection.c (bus_transaction_add_cancel_hook): new function
7626         allowing us to put custom hooks in a transaction to be used for
7627         cancelling said transaction
7628
7629         * doc/dbus-specification.sgml: add some discussion of secondary
7630         service owners, and disallow zero-length service names
7631
7632         * bus/services.c (bus_registry_acquire_service): new function,
7633         splits out part of bus_driver_handle_acquire_service() and fixes
7634         a bug where we didn't remove the service doing the acquiring
7635         from the secondary queue if we failed to remove the current owner
7636         from the front of the queue.
7637
7638 2003-04-10  Alexander Larsson  <alexl@redhat.com>
7639
7640         * doc/dbus-specification.sgml:
7641         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
7642
7643 2003-04-10  Alexander Larsson  <alexl@redhat.com>
7644
7645         * bus/.cvsignore:
7646         * glib/.cvsignore:
7647         * test/.cvsignore:
7648         Added files to cvsignore
7649
7650         * dbus/dbus-message.h:
7651         * dbus/dbus-message.c: (dbus_message_iter_get_named):
7652         Make get_named() take two out argument and return a boolean.
7653         (dbus_message_iter_get_args_valist):
7654         Update usage of get_named().
7655         (dbus_message_iter_append_byte):
7656         Fix typo
7657         (dbus_message_iter_append_named)
7658         Fix typo
7659         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
7660         More tests.
7661
7662 2003-04-10  Alexander Larsson  <alexl@redhat.com>
7663
7664         * dbus/dbus-marshal.[ch]:
7665         Add array_type_pos argument to _dbus_marshal_validate_arg.
7666         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
7667
7668         * dbus/dbus-message.[ch]:
7669         Multi-dimensional arrays have full type specification in the
7670         outermost array. Iter code re-arranged to handle this.
7671         Added some more iter tests.
7672
7673         * doc/dbus-specification.sgml:
7674         Add me to authors.
7675         Remove old FIXME.
7676         Update new array encoding description.
7677         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
7678
7679         * test/data/invalid-messages/array-with-mixed-types.message:
7680         * test/data/valid-messages/array-of-array-of-uint32.message:
7681         Change to the new array format.
7682
7683         * test/data/invalid-messages/too-short-dict.message:
7684         Fix bug in test.
7685
7686         * test/data/valid-messages/recursive-types.message:
7687         Fix up and extend test.
7688
7689 2003-04-10  Havoc Pennington  <hp@pobox.com>
7690
7691         * bus/dispatch.c: lots of fixes
7692
7693         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
7694         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
7695         that was crack, broke the test service.
7696
7697         * dbus/dbus-transport.c (_dbus_transport_open): fix error
7698         handling to avoid piling up errors if we get a failure on the
7699         first address.
7700
7701         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
7702         pid in assertion failures.
7703
7704         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
7705         to some fixed size of file descriptor array. Don't return TRUE
7706         anytime a timeout exists, that led to lots of busy loop silliness
7707         in the tests.
7708
7709 2003-04-09  Havoc Pennington  <hp@redhat.com>
7710
7711         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
7712         I'd checked this in earlier but hadn't.
7713
7714 2003-04-09  Havoc Pennington  <hp@redhat.com>
7715
7716         * bus/dispatch.c (bus_dispatch_test): get a bit further through
7717         the activation test (man this is getting old!)
7718
7719 2003-04-09  Havoc Pennington  <hp@redhat.com>
7720
7721         * test/test-utils.c: use dispatch status function to fix this up
7722
7723         * bus/connection.c (connection_watch_callback): don't dispatch
7724         from here
7725         (connection_timeout_callback): don't dispatch from here
7726         (bus_connections_setup_connection): set the dispatch status function
7727         (bus_connection_disconnected): unset it
7728
7729         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
7730         used to add a connection to be dispatched
7731         (_dbus_loop_iterate): do the dispatching at the end of each
7732         iteration
7733
7734         * dbus/dbus-connection.c
7735         (dbus_connection_set_dispatch_status_function): new function
7736         allowing us to fix up main loop usage
7737         (_dbus_connection_last_unref): free all the various function
7738         user data
7739         (dbus_connection_dispatch): call the DispatchStatusFunction
7740         whenever this function returns
7741         (dbus_connection_handle_watch): call DispatchStatusFunction
7742         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
7743         (reply_handler_timeout): call DispatchStatusFunction
7744         (dbus_connection_flush): call DispatchStatusFunction
7745
7746 2003-04-09  Havoc Pennington  <hp@redhat.com>
7747
7748         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
7749         a memory leak
7750
7751         * bus/dispatch.c (check_service_activated): fix bug in test
7752
7753         * dbus/dbus-mainloop.c (check_timeout): fix this up
7754
7755         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
7756         verbose output so we can sort out output from different processes,
7757         e.g. in the activation case.
7758
7759 2003-04-08  Colin Walters  <walters@gnu.org>
7760
7761         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
7762         the pid file.
7763         (bus_context_new): Set it.
7764         (bus_context_unref): Use it to delete the pid file.
7765
7766 2003-04-08  Havoc Pennington  <hp@redhat.com>
7767
7768         * test/data/invalid-messages/array-with-mixed-types.message:
7769         regression test that fails for the moment
7770
7771         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
7772         tests for convenience
7773
7774         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
7775         array of nil, it broke things.
7776
7777         * test/data/invalid-messages/array-of-nil.message: regression test
7778
7779         * test/data/valid-messages/array-of-array-of-uint32.message:
7780         happened to write this so added it to suite
7781
7782 2003-04-08  Havoc Pennington  <hp@redhat.com>
7783
7784         * bus/driver.c (bus_driver_handle_acquire_service): init
7785         retval/reply before checking name
7786
7787         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
7788         recursion depth argument
7789
7790         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
7791         in the public struct for future extension
7792
7793         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
7794         typo
7795
7796         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
7797         message
7798
7799         * doc/dbus-specification.sgml: fix typo
7800
7801 2003-04-08  Alexander Larsson  <alexl@redhat.com>
7802
7803         Implemented recursive types, named types and new-style iters
7804
7805         * bus/driver.c:
7806         * glib/test-thread-client.c: (thread_func):
7807         * glib/test-thread-server.c: (handle_test_message):
7808         * test/test-service.c: (handle_echo):
7809         Update to new api
7810
7811         * dbus/Makefile.am:
7812         * dbus/dbus-dict.c:
7813         * dbus/dbus-dict.h:
7814         * dbus/dbus.h
7815         Remove DBusDict
7816
7817         * dbus/dbus-internals.c: (_dbus_type_to_string):
7818         Update for new types.
7819
7820         * dbus/dbus-marshal.[ch]:
7821         Implement recursive types and the new marshalling format.
7822         Remove hardcoded dict marshalling.
7823         Marshal named types.
7824
7825         * dbus/dbus-message-builder.c:
7826         Add BYTE_ARRAY.
7827         Remove references to old types
7828
7829         * dbus/dbus-message.[ch]:
7830         New non-refcounted iter API that supports recursive iters.
7831         Use iters for appending, including support for recursive
7832         iters.
7833         Add byte and named type support.
7834         Update everything to new marshalling formats.
7835         Add tests for new API.
7836
7837         * dbus/dbus-protocol.h:
7838         Remove old array types.
7839         Add types: BYTE, ARRAY, DICT, NAMED
7840
7841         * dbus/dbus-string.c:
7842         * dbus/dbus-sysdeps.c:
7843         Make parse_double locale safe.
7844
7845         * dbus/dbus-test-main.c:
7846         Call setlocale.
7847
7848         * dbus/dbus-test.c:
7849         Kill dict test
7850
7851         * doc/dbus-specification.sgml:
7852         Update spec
7853
7854         * test/data/incomplete-messages/missing-body.message:
7855         * test/data/invalid-messages/bad-boolean.message:
7856         * test/data/invalid-messages/bad-boolean-array.message:
7857         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
7858         * test/data/invalid-messages/boolean-has-no-value.message-raw:
7859         * test/data/invalid-messages/too-short-dict.message:
7860         * test/data/valid-messages/dict-simple.message:
7861         * test/data/valid-messages/dict.message:
7862         * test/data/valid-messages/emptiness.message:
7863         * test/data/valid-messages/lots-of-arguments.message:
7864         * test/data/valid-messages/no-padding.message:
7865         * test/data/valid-messages/recursive-types.message:
7866         Add missing NAME fields
7867         Fix up dicts & arrays
7868
7869         * test/data/invalid-messages/dict-with-nil-value.message:
7870         Removed, this is not invalid anymore.
7871
7872         * test/data/valid-messages/recursive-types.message:
7873         Add new test for deeply recursive types.
7874
7875 2003-04-07  Havoc Pennington  <hp@pobox.com>
7876
7877         * bus/driver.c (bus_driver_handle_acquire_service): return an
7878         error if you try to acquire a service that starts with ':'
7879
7880 2003-04-07  Havoc Pennington  <hp@redhat.com>
7881
7882         * doc/dbus-specification.sgml: require that base service names
7883         start with ':' and that the base service is created/deleted
7884         as first and last things a connection does on the bus
7885
7886         * bus/dispatch.c (check_existent_service_activation): lots more
7887         work on the activation test; it doesn't fully pass yet...
7888
7889         * test/test-service.c (main): fix so we don't memleak the
7890         connection to the message bus
7891         (filter_func): accept a message asking us to exit
7892
7893 2003-04-06  Havoc Pennington  <hp@pobox.com>
7894
7895         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
7896         from Colin Walters
7897
7898         * configure.in: fixes to Qt detection from Colin Walters
7899
7900         * doc/Makefile.am: Only remove generated docbook dirs if they
7901         exist, from Colin Walters
7902
7903         * dbus/dbus-bus.c: change how we set well-known connections to
7904         NULL, so that it works if a single connection is stored in
7905         two well-known array slots.
7906
7907         * test/Makefile.am: remove a lot of stuff that isn't immediately
7908         useful, it's in CVS history if we want it.
7909
7910         * test/test-service.c: use dbus-mainloop instead of that
7911         watch.[hc] crack
7912
7913 2003-04-06  Havoc Pennington  <hp@pobox.com>
7914
7915         * dbus/Makefile.am: split lists of sources into stuff that goes in
7916         the library, util functions that go in the lib and are also used
7917         elsewhere, and util functions that are used in tests/daemon but
7918         don't go in the lib.
7919
7920         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
7921         here so it can be used in test binaries also
7922
7923 2003-04-06  Havoc Pennington  <hp@pobox.com>
7924
7925         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
7926         here in the parent process, so we can return an error if it
7927         fails. Also, move some of the code into the child so the parent
7928         is less hosed if we fail midway through.
7929
7930         * bus/bus.c (bus_context_new): move pidfile detection further up
7931         in the function, before we start overwriting sockets and such.
7932
7933         * bus/messagebus.in: adjust this a bit, not sure if it will work.
7934
7935         * configure.in: add --with-system-pid-file and --with-system-socket
7936
7937 2003-04-06  Colin Walters  <walters@verbum.org>
7938
7939         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
7940
7941         * bus/system.conf.in: Declare a pidfile.
7942
7943         * bus/bus.c (bus_context_new): Test for an existing pid file, and
7944         create one (if appropriate).
7945
7946         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
7947         (struct BusConfigParser) [pidfile]: New.
7948         (element_type_to_name, merge_included, start_busconfig_child)
7949         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
7950         (bus_config_parser_unref): Free it.
7951         (bus_config_parser_get_pidfile): New function.
7952
7953         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
7954
7955         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
7956
7957         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
7958
7959         * dbus/dbus-sysdeps.h: Prototype it.
7960
7961 2003-04-06  Havoc Pennington  <hp@pobox.com>
7962
7963         * bus/bus.c (bus_context_new): print the address in here, rather
7964         than in main(), because we need to do it before forking the daemon
7965
7966         * bus/dispatch.c (send_service_nonexistent_error): set the sender
7967         on the service nonexistent error
7968
7969         * bus/driver.c (bus_driver_handle_acquire_service): set the
7970         sender on the AcquireService reply
7971
7972         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
7973         server also listen on a UNIX socket so services can connect to it.
7974
7975 2003-04-06  Havoc Pennington  <hp@pobox.com>
7976
7977         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
7978         so it detects deadlocks and also we actually init threads when
7979         debugging.
7980
7981 2003-04-06  Havoc Pennington  <hp@pobox.com>
7982
7983         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7984         save the domain socket name, and unlink it when we disconnect the
7985         server. Means that at least when we exit normally, we won't leave
7986         a bunch of junk in /tmp
7987
7988         * dbus/dbus-transport-unix.c
7989         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
7990         memory management). (I was making a real change here but then
7991         didn't)
7992
7993 2003-04-06  Havoc Pennington  <hp@pobox.com>
7994
7995         * bus/bus.c (bus_context_new): fix wrong handling of
7996         server_data_slot_unref() in the error case.
7997
7998         * dbus/dbus-internals.h (_dbus_assert): change so it passes
7999         "(condition) != 0" to _dbus_real_assert so that
8000         "_dbus_assert (pointer)" doesn't cause a warning
8001
8002         * bus/main.c (main): accept --print-address option to print out
8003         the message bus address
8004
8005         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
8006
8007         * dbus/dbus-transport.c (_dbus_transport_open): special error for
8008         "tmpdir" option to unix: address on client side
8009
8010         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
8011         to unix: address
8012
8013         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
8014         we can use to create sockets in the test suite.
8015
8016         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
8017         cleanly. To be used for testing.
8018
8019         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
8020
8021         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
8022
8023         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8024         handle trying to call this when there's no servers active
8025
8026 2003-04-05  Havoc Pennington  <hp@pobox.com>
8027
8028         * NEWS: update
8029
8030         * configure.in: 0.8
8031
8032 2003-04-05  Havoc Pennington  <hp@pobox.com>
8033
8034         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
8035         crash on startup. Need to get "try starting the daemon"
8036         in the test suite I guess. ;-)
8037
8038         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
8039         tracked the number of open connections; it's better done in
8040         application-specific code as you want it to span all servers etc.
8041
8042 2003-04-05  Havoc Pennington  <hp@pobox.com>
8043
8044         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
8045         patch from Colin Walters
8046
8047 2003-04-05  Havoc Pennington  <hp@pobox.com>
8048
8049         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
8050         reality; in fact multiple mechanisms are allowed.
8051
8052         * dbus/dbus-internals.c (_dbus_real_assert)
8053         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
8054         _dbus_assert_not_reached() into functions, so that they don't show
8055         up in basic block counts for test coverage, and don't use up as
8056         much disk space. Does mean slower execution speed though, so
8057         assumes --disable-asserts is the normal production case.
8058
8059 2003-04-05  Havoc Pennington  <hp@pobox.com>
8060
8061         * test/Makefile.am (dist-hook): also dist *.in files
8062
8063         * NEWS: update
8064
8065         * configure.in: 0.7
8066
8067 2003-04-05  Havoc Pennington  <hp@pobox.com>
8068
8069         * dbus/dbus-string.c: docs warning
8070
8071         * dbus/dbus-spawn.c: missing docs
8072
8073         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
8074
8075 2003-04-05  Havoc Pennington  <hp@pobox.com>
8076
8077         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
8078         magic from GLib
8079
8080         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
8081         to -1 once we've reaped the babysitter
8082         (_dbus_babysitter_handle_watch): do as much work as we can, not
8083         just one go of it
8084
8085         * bus/activation.c: add code using DBusBabysitter so that we
8086         handle it when a service fails to start up properly.
8087         (bus_activation_service_created): don't remove the activation
8088         entries as we go, just let them get removed when we free the pending
8089         activation. Unref reply messages after sending them.
8090
8091 2003-04-05  Havoc Pennington  <hp@pobox.com>
8092
8093         * test/decode-gcov.c (main): print per-directory stats in the report
8094
8095         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
8096
8097 2003-04-05  Havoc Pennington  <hp@pobox.com>
8098
8099         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
8100
8101         * test/decode-gcov.c: hack up a little program to suck data
8102         out of gcov files. Yes this is sort of silly.
8103
8104         * configure.in: define something in config.h and do an
8105         AM_CONDITIONAL when gcov is enabled
8106
8107 2003-04-04  Havoc Pennington  <hp@redhat.com>
8108
8109         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
8110         return a "babysitter" object that is used to monitor the status of
8111         the spawned process and reap it when required.
8112
8113         * test/test-segfault.c, test/test-exit.c,
8114         test/test-sleep-forever.c: binaries that do various lame things,
8115         used in the test suite.
8116
8117         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
8118
8119 2003-04-03  Havoc Pennington  <hp@pobox.com>
8120
8121         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
8122         in preparation for modifying it, dbus-sysdeps is getting
8123         a bit unmanageable.
8124
8125 2003-04-03  Havoc Pennington  <hp@redhat.com>
8126
8127         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
8128         have multiple ones
8129
8130         * bus/*.[hc]: adapt to mainloop change
8131
8132 2003-04-03  Havoc Pennington  <hp@redhat.com>
8133
8134         * bus/activation.c (load_directory): fix up memleaks
8135         (bus_activation_entry_free): free the entry
8136
8137         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
8138         we get one from the message bus; fix memleaks.
8139
8140         * dbus/dbus-message.c (dbus_set_error_from_message): new function
8141
8142 2003-04-03  Havoc Pennington  <hp@pobox.com>
8143
8144         * bus/config-parser.c (bus_config_parser_unref): free
8145         list of mechanisms, bug discovered by test suite enhancements
8146         (putting system.conf and session.conf into suite)
8147
8148         * test/Makefile.am, test/test-service.c: add placeholder for a
8149         test service that we'll activate as part of test suite. Doesn't
8150         do anything yet.
8151
8152         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
8153         setting NULL value, and use system malloc not dbus_malloc()
8154         when we have unavoidable memleakage.
8155
8156         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
8157         didn't work, and support DBUS_BUS_ACTIVATION.
8158
8159         * bus/activation.c (child_setup): pass our well-known bus type to
8160         the child
8161
8162         * bus/config-parser.c: support <type> to specify well-known type
8163
8164         * doc/dbus-specification.sgml: document the env variables to
8165         locate well-known buses and find service activator
8166
8167 2003-04-02  Havoc Pennington  <hp@redhat.com>
8168
8169         * test/Makefile.am (all-local): add a rule to copy tests to
8170         builddir, so we can have generated tests. Use this to remove the
8171         silly hack for testing system.conf and session.conf. Will use this
8172         shortly to generate .service files pointing to test binaries.
8173
8174 2003-04-02  Havoc Pennington  <hp@redhat.com>
8175
8176         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
8177         current alloc and needed new length, not max of the doubled
8178         allocation and needed new length. Also, when building tests,
8179         don't do the double-allocation stuff, just realloc every time.
8180
8181 2003-04-02  Havoc Pennington  <hp@redhat.com>
8182
8183         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
8184         in error messages
8185         (_dbus_string_get_dirname): new
8186         (_dbus_sysdeps_test): new
8187         (_dbus_directory_open): include dirnames in error messages
8188
8189         * bus/config-parser.c: interpret <include> and <includedir> and
8190         <servicedir> relative to config file location if the given
8191         filename is not absolute.
8192
8193         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
8194
8195 2003-04-02  Havoc Pennington  <hp@redhat.com>
8196
8197         * bus/connection.c (bus_transaction_send_error_reply): set sender
8198         service for the error, and unref the reply on success
8199
8200         * bus/activation.c: convert to use BusTransaction so OOM can be
8201         handled correctly
8202         (bus_activation_service_created): set sender of the message
8203
8204 2003-04-01  Havoc Pennington  <hp@redhat.com>
8205
8206         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
8207         <includedir> (at least mostly)
8208
8209         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
8210         first, then the user ID
8211
8212 2003-04-01  Havoc Pennington  <hp@pobox.com>
8213
8214         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
8215         function
8216
8217         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
8218
8219         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
8220
8221         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
8222         socket 0777, and unlink any existing socket.
8223
8224         * bus/bus.c (bus_context_new): change our UID/GID and fork if
8225         the configuration file so specifies; set up auth mechanism
8226         restrictions
8227
8228         * bus/config-parser.c (bus_config_parser_content): add support
8229         for <fork> option and fill in code for <auth>
8230
8231         * bus/system.conf.in: add <fork/> to default configuration,
8232         and limit auth mechanisms to EXTERNAL
8233
8234         * doc/config-file.txt (Elements): add <fork>
8235
8236         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
8237         (_dbus_change_identity): new function
8238
8239 2003-03-31  Havoc Pennington  <hp@redhat.com>
8240
8241         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
8242         (_dbus_listen_unix_socket): fix off-by-one error in null
8243         termination spotted by Nalin
8244
8245 2003-03-31  Havoc Pennington  <hp@redhat.com>
8246
8247         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
8248         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
8249         having a real home directory available.
8250
8251 2003-03-31  Havoc Pennington  <hp@redhat.com>
8252
8253         * bus/Makefile.am (install-data-hook): create /var/run/dbus
8254
8255         * bus/messagebus.in: add init script for Red Hat /etc/init.d
8256
8257         * configure.in: add support for specifying a style of init script
8258         to install
8259
8260 2003-03-31  Havoc Pennington  <hp@redhat.com>
8261
8262         Fix some annoying DBusString API and fix all affected code.
8263
8264         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
8265         max_length argument
8266         (_dbus_string_get_data): change to return string instead of using
8267         an out param
8268         (_dbus_string_get_const_data): ditto
8269         (_dbus_string_get_data_len): ditto
8270         (_dbus_string_get_const_data_len): ditto
8271
8272 2003-03-31  Havoc Pennington  <hp@redhat.com>
8273
8274         * bus/main.c (main): fix up the command line arguments to be nicer
8275
8276 2003-03-31  Havoc Pennington  <hp@redhat.com>
8277
8278         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
8279         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
8280         final location that lands in the config file
8281
8282         * bus/config-loader-expat.c (bus_config_load): fix type of
8283         XML_Parser variable
8284
8285         * doc/TODO: remove TODO item for dbus_bus_get()
8286
8287         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
8288
8289 2003-03-31  Havoc Pennington  <hp@pobox.com>
8290
8291         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
8292         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
8293         argument since they are always client side
8294
8295         * dbus/dbus-server.c (dbus_server_get_address): new function
8296
8297         * bus/main.c (main): take the configuration file as an argument.
8298
8299         * test/data/valid-config-files/debug-allow-all.conf: new file to
8300         use with dispatch.c tests for example
8301
8302         * bus/test-main.c (main): require test data dir
8303
8304         * bus/bus.c (bus_context_new): change this to take a
8305         configuration file name as argument
8306
8307         * doc/config-file.txt (Elements): add <servicedir>
8308
8309         * bus/system.conf, bus/session.conf: new files
8310
8311         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
8312         well-known socket if none set
8313
8314         * configure.in: create system.conf and session.conf
8315
8316 2003-03-30  Havoc Pennington  <hp@pobox.com>
8317
8318         * bus/config-parser.c: hacking
8319
8320         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
8321         to shut down, since it could cause weirdness with the DBusList
8322         lock
8323
8324         * dbus/dbus-list.c (_dbus_list_test): add tests for the
8325         link-oriented stack routines
8326         (alloc_link): free the mempool if the first alloc from it fails
8327
8328         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
8329
8330         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
8331         from GLib
8332         (_dbus_string_skip_white): new
8333
8334         * doc/config-file.txt (Elements): add <includedir>
8335
8336 2003-03-28  Havoc Pennington  <hp@pobox.com>
8337
8338         * dbus/dbus-string.c (_dbus_string_copy_data_len)
8339         (_dbus_string_copy_data): new functions
8340
8341 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
8342
8343         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
8344         * dbus/dbus-bus.h:
8345         Add dbus_bus_get.
8346
8347         * dbus/dbus-memory.c:
8348         Fix a doc comment.
8349
8350 2003-03-28  Havoc Pennington  <hp@pobox.com>
8351
8352         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
8353         I think it may have just been superstition. Not sure.
8354
8355         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
8356         failures that were not being handled.
8357
8358         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
8359
8360         * dbus/dbus-memory.c: add ability to set number of mallocs in a
8361         row that will fail on out-of-memory.
8362
8363         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
8364         function for testing out-of-memory handling.
8365
8366         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
8367         allocation functions, they do map exactly to the expat ones.
8368
8369 2003-03-27  Havoc Pennington  <hp@redhat.com>
8370
8371         * bus/config-loader-libxml.c (bus_config_load): add another error
8372         check
8373
8374 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
8375
8376         * doc/TODO:
8377         Add note about automatic service activation.
8378
8379         * doc/dbus-specification.sgml:
8380         Rename the specification and clarify a few things.
8381
8382 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
8383
8384         * Doxyfile.in:
8385         * dbus/dbus-address.c:
8386         * dbus/dbus-dict.c:
8387         * dbus/dbus-marshal.c:
8388         * dbus/dbus-server-debug-pipe.c:
8389         * dbus/dbus-transport-unix.c:
8390         Fix documentation warnings.
8391
8392 2003-03-26  Havoc Pennington  <hp@pobox.com>
8393
8394         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
8395         after every test so it's quick and easy to see which leaked, and
8396         so we test multiple dbus_shutdown() calls
8397
8398         * configure.in: change configure.in XML stuff to also support
8399         expat
8400
8401         * config-loader-libxml.c: some hacking
8402
8403         * config-loader-expat.c: some hacking
8404
8405         * config-parser.c: some hacking, plus tests
8406
8407 2003-03-25  Havoc Pennington  <hp@redhat.com>
8408
8409         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
8410
8411         * configure.in: add --with-xml option to specify XML library,
8412         right now only libxml is supported.
8413
8414         * bus/config-loader-libxml.c, config-parser.c: sync some minor
8415         nonworking code between home and work, still just stubs
8416
8417 2003-03-24  Havoc Pennington  <hp@redhat.com>
8418
8419         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
8420         file
8421
8422         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
8423         NULL argument for "message" if the error is a well-known one,
8424         fill in a generic message in this case.
8425
8426         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
8427         favor of DBusError
8428
8429         * bus/test.c (bus_test_flush_bus): add
8430
8431         * bus/policy.c (bus_policy_test): test code stub
8432
8433 2003-03-24  Havoc Pennington  <hp@pobox.com>
8434
8435         * bus/connection.c (bus_connections_setup_connection): set up
8436         the "can this user connect" function, but it always returns
8437         TRUE until we have a config file parser so we can have a config
8438         file that allows connections.
8439
8440 2003-03-23  Havoc Pennington  <hp@pobox.com>
8441
8442         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
8443         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
8444         the mutex, so we can check for proper memory management
8445         and OOM handling.
8446
8447         * dbus/dbus-dataslot.c: remove the mutex from
8448         DBusDataSlotAllocator and lock it manually when using it,
8449         to simplify fitting it into the global slots framework.
8450
8451         * dbus/dbus-threads.c (init_static_locks): rework how we're
8452         handling global locks so they are easily shut down.
8453
8454         * bus/policy.c (bus_policy_append_rule): fix
8455
8456         * bus/test-main.c (main): check for memleaks
8457
8458         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
8459         test suite check for memleaks
8460
8461         * dbus/dbus-memory.c: add support in test mode for tracking
8462         number of outstanding blocks
8463
8464 2003-03-23  Havoc Pennington  <hp@pobox.com>
8465
8466         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
8467         policies code
8468
8469         * dbus/dbus-hash.h: add ULONG hash keys
8470
8471         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
8472         (_dbus_get_group_id): new function
8473
8474 2003-03-20  Havoc Pennington  <hp@redhat.com>
8475
8476         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
8477         new function
8478         (dbus_connection_get_unix_user): new function
8479
8480 2003-03-20  Havoc Pennington  <hp@pobox.com>
8481
8482         * bus/connection.c (bus_connection_send_oom_error): assert that
8483         message has a sender
8484         (connection_execute_transaction): ditto
8485         (bus_connection_preallocate_oom_error): fix to set the sender, and
8486         set recipient to the destination service, not the bus driver
8487
8488         * bus/policy.c: hacking
8489
8490         * dbus/dbus-message.c (dbus_message_service_is): new function
8491         (dbus_message_sender_is): new
8492
8493 2003-03-19  Havoc Pennington  <hp@redhat.com>
8494
8495         * bus/policy.c: start sketching code for policy restrictions on
8496         what connections can do.
8497
8498 2003-03-18  Havoc Pennington  <hp@redhat.com>
8499
8500         * doc/TODO: some notes on high-level todo items. Little nitpick
8501         stuff is all in @todo, so no need to add it here.
8502
8503         * doc/config-file.txt: some notes on how config file might look
8504
8505 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
8506
8507         * configure.in: 0.6
8508
8509         * NEWS: Update.
8510
8511 2003-03-17  Havoc Pennington  <hp@redhat.com>
8512
8513         * dbus/dbus-internals.h: add gcc attributes so that
8514         our printf-style functions warn on bad arguments to
8515         format
8516
8517         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
8518         format bug
8519
8520         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8521         printf format bug
8522
8523 2003-03-17  Havoc Pennington  <hp@redhat.com>
8524
8525         * bus/test-main.c (main): make it print something as it runs
8526         so make check doesn't look stuck
8527
8528         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
8529         from CVS, now obsolete
8530
8531 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
8532
8533         * bus/dispatch.c: (bus_dispatch):
8534         Refetch the service name since it may have been reallocated
8535         when dbus_message_set_sender was called.
8536
8537         * dbus/dbus-sysdeps.c: (_dbus_accept):
8538         Add address and address length variables and use them to stop
8539         valgrind from complaining.
8540
8541 2003-03-17  Havoc Pennington  <hp@pobox.com>
8542
8543         All tests pass, no memleaks, no valgrind complaints.
8544
8545         * bus/test.c: refcount handler_slot
8546
8547         * bus/connection.c (bus_connections_new): refcount
8548         connection_data_slot
8549
8550         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
8551         bytes so that auth scripts pass.
8552
8553         * bus/dispatch.c: init message_handler_slot so it gets allocated
8554         properly
8555
8556         * bus/dispatch.c (message_handler_slot_ref): fix memleak
8557
8558         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
8559         dealloc server_pipe_hash when no longer used for benefit of
8560         leak checking
8561
8562         * dbus/dbus-auth.c (process_command): memleak fix
8563
8564         * bus/dispatch.c (check_hello_message): memleak fix
8565
8566 2003-03-16  Havoc Pennington  <hp@pobox.com>
8567
8568         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
8569
8570 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
8571
8572         * bus/activation.c (bus_activation_activate_service): Append
8573         the pending activation entry to the list of pending activations.
8574
8575 2003-03-16  Havoc Pennington  <hp@pobox.com>
8576
8577         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
8578         connections
8579
8580         * dbus/dbus-address.c (create_entry): fix OOM handling when
8581         failing to alloc entry->method
8582
8583 2003-03-16  Havoc Pennington  <hp@pobox.com>
8584
8585         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
8586         the watch
8587
8588         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8589         add some missing dbus_set_result
8590
8591         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
8592         alloc the DBusMessageHandler
8593
8594         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
8595         the transport here, since we call this from the finalizer; it
8596         resulted in a double-finalize.
8597
8598         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
8599         where we tried to use transport->connection that was NULL,
8600         happened when transport was disconnected early on due to OOM
8601
8602         * bus/*.c: adapt to handle OOM for watches/timeouts
8603
8604         * dbus/dbus-transport-unix.c: port to handle OOM during
8605         watch handling
8606
8607         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
8608         reference to unused bytes instead of a copy
8609
8610         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
8611         out of memory
8612
8613         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
8614         FALSE on OOM
8615
8616         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
8617         of memory
8618
8619 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
8620
8621         * doc/dbus-specification.sgml:
8622         Document reply message for ActivateService.
8623
8624 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
8625
8626         * bus/activation.c: (bus_pending_activation_entry_free),
8627         (bus_pending_activation_free), (bus_activation_new),
8628         (bus_activation_unref), (bus_activation_service_created),
8629         (bus_activation_activate_service):
8630         * bus/activation.h:
8631         * bus/bus.c: (bus_context_new):
8632         * bus/desktop-file.c: (new_section):
8633         * bus/driver.c: (bus_driver_send_service_deleted),
8634         (bus_driver_handle_activate_service):
8635         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
8636         * bus/services.h:
8637         * dbus/dbus-connection.c:
8638         (dbus_connection_send_with_reply_and_block):
8639         * dbus/dbus-message.c: (dbus_message_append_args_valist):
8640         * dbus/dbus-protocol.h:
8641         Make activation work better. Now pending activations will be queued
8642         and the daemon won't try to activate services that are already registered.
8643
8644 2003-03-16  Havoc Pennington  <hp@pobox.com>
8645
8646         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
8647         connection data
8648
8649         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
8650         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
8651
8652 2003-03-16  Havoc Pennington  <hp@pobox.com>
8653
8654         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
8655         this. always run the test suite before commit...
8656
8657         * bus/*: adapt to DBusConnection API changes
8658
8659         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
8660         requires renaming stuff to avoid dbus_connection_dispatch name
8661         conflict.
8662
8663         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
8664         function
8665
8666         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8667         separate from _dbus_message_loader_return_buffer()
8668
8669         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
8670         this, because it's now always broken to use; the number of
8671         messages in queue vs. the number still buffered by the message
8672         loader is undefined/meaningless. Should use
8673         dbus_connection_get_dispatch_state().
8674         (dbus_connection_dispatch): rename from
8675         dbus_connection_dispatch_message
8676
8677 2003-03-16  Havoc Pennington  <hp@pobox.com>
8678
8679         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
8680         implementation
8681
8682 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
8683
8684         * dbus/dbus-connection.c:
8685         (dbus_connection_send_with_reply_and_block):
8686         Decrease connection->n_incoming when removing an entry
8687         from the list.
8688         * dbus/dbus-dict.c: (dbus_dict_entry_free),
8689         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
8690         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
8691         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
8692         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
8693         (dbus_dict_get_byte_array):
8694         Handle NULL arrays and strings. Also add support for byte arrays.
8695
8696         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
8697         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
8698         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
8699         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
8700         (_dbus_demarshal_dict), (demarshal_and_validate_len),
8701         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
8702         * dbus/dbus-marshal.h:
8703         Add support for marshalling and demarshalling empty arrays and strings.
8704
8705         * dbus/dbus-message.c: (dbus_message_append_args_valist),
8706         (dbus_message_append_string_array),
8707         (dbus_message_iter_get_boolean),
8708         (dbus_message_iter_get_boolean_array),
8709         (dbus_message_iter_get_int32_array),
8710         (dbus_message_iter_get_uint32_array),
8711         (dbus_message_iter_get_double_array),
8712         (dbus_message_iter_get_byte_array),
8713         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
8714         (check_message_handling):
8715         Add support for getting empty arrays and dicts.
8716
8717         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
8718         Don't do any validation at all for now, that's better than just checking
8719         for ASCII.
8720
8721         * test/data/valid-messages/emptiness.message:
8722         New test message with lots of empty arrays.
8723
8724 2003-03-16  Havoc Pennington  <hp@pobox.com>
8725
8726         * dbus/dbus-connection.c
8727         (_dbus_connection_queue_received_message_link): new function that
8728         can't fail due to OOM
8729
8730         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
8731         new function pops a message together with a list link
8732         containing it.
8733
8734         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
8735         message queuing functions to avoid needing to alloc memory
8736
8737 2003-03-16  Havoc Pennington  <hp@pobox.com>
8738
8739         Oops - test code was only testing failure of around 30 of the
8740         mallocs in the test path, but it turns out there are 500+
8741         mallocs. I believe this was due to misguided linking setup such
8742         that there was one copy of dbus_malloc etc. in the daemon and one
8743         in the shared lib, and only daemon mallocs were tested. In any
8744         case, the test case now tests all 500+ mallocs, and doesn't pass
8745         yet, though there are lots of fixes in this patch.
8746
8747         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
8748         this so that it doesn't need to allocate memory, since it
8749         has no way of indicating failure due to OOM (and would be
8750         annoying if it did).
8751
8752         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
8753
8754         * bus/Makefile.am: rearrange to create two self-contained
8755         libraries, to avoid having libraries with overlapping symbols.
8756         that was resulting in weirdness, e.g. I'm pretty sure there
8757         were two copies of global static variables.
8758
8759         * dbus/dbus-internals.c: move the malloc debug stuff to
8760         dbus-memory.c
8761
8762         * dbus/dbus-list.c (free_link): free list mempool if it becomes
8763         empty.
8764
8765         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
8766
8767         * dbus/dbus-address.c (dbus_parse_address): free list nodes
8768         on failure.
8769
8770         * bus/dispatch.c (bus_dispatch_add_connection): free
8771         message_handler_slot when no longer using it, so
8772         memory leak checkers are happy for the test suite.
8773
8774         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
8775
8776         * bus/bus.c (new_connection_callback): disconnect in here if
8777         bus_connections_setup_connection fails.
8778
8779         * bus/connection.c (bus_connections_unref): fix to free the
8780         connections
8781         (bus_connections_setup_connection): if this fails, don't
8782         disconnect the connection, just be sure there are no side
8783         effects.
8784
8785         * dbus/dbus-string.c (undo_alignment): unbreak this
8786
8787         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
8788         leaking
8789         (_dbus_auth_new): fix the order in which we free strings
8790         on OOM failure
8791
8792         * bus/connection.c (bus_connection_disconnected): fix to
8793         not send ServiceDeleted multiple times in case of memory
8794         allocation failure
8795
8796         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
8797         get the base service name
8798         (dbus_bus_register_client): don't return base service name,
8799         instead store it on the DBusConnection and have an accessor
8800         function for it.
8801         (dbus_bus_register_client): rename dbus_bus_register()
8802
8803         * bus/dispatch.c (check_hello_message): verify that other
8804         connections on the bus also got the correct results, not
8805         just the one sending hello
8806
8807 2003-03-15  Havoc Pennington  <hp@pobox.com>
8808
8809         Make it pass the Hello handling test including all OOM codepaths.
8810         Now to do other messages...
8811
8812         * bus/services.c (bus_service_remove_owner): fix crash when
8813         removing owner from an empty list of owners
8814         (bus_registry_ensure): don't leave service in the list of
8815         a connection's owned services if we fail to put the service
8816         in the hash table.
8817
8818         * bus/connection.c (bus_connection_preallocate_oom_error): set
8819         error flag on the OOM error.
8820
8821         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8822         handle _dbus_transport_set_connection failure
8823
8824         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
8825         to create watches up front and simply enable/disable them as
8826         needed.
8827         (unix_connection_set): this can now fail on OOM
8828
8829         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
8830         of enabling/disabling a watch or timeout.
8831
8832         * bus/loop.c (bus_loop_iterate): don't touch disabled
8833         watches/timeouts
8834
8835         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
8836
8837 2003-03-15  Havoc Pennington  <hp@pobox.com>
8838
8839         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
8840         write useful test code, after all that futzing around ;-)
8841
8842         Test does not yet pass because we can't handle OOM in
8843         _dbus_transport_messages_pending (basically,
8844         dbus_connection_preallocate_send() does not prealloc the write
8845         watch). To fix this, I think we need to add new stuff to
8846         set_watch_functions, namely a SetEnabled function so we can alloc
8847         the watch earlier, then enable it later.
8848
8849         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
8850         dbus-memory.c to the convenience lib
8851
8852         * bus/test.c: rename some static functions to keep them clearly
8853         distinct from stuff in connection.c. Handle client disconnection.
8854
8855 2003-03-14  Havoc Pennington  <hp@pobox.com>
8856
8857         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
8858         transport, tests more of the real codepath. Set up clients
8859         with bus_setup_debug_client.
8860
8861         * bus/test.c (bus_setup_debug_client): function to set up debug
8862         "clients" on the main loop
8863
8864         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
8865         support
8866
8867         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
8868         server type
8869
8870         * dbus/dbus-server-debug.c: support a debug server based on pipes
8871
8872         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
8873         (_dbus_close): new function
8874
8875         * configure.in: check for socketpair
8876
8877 2003-03-14  Havoc Pennington  <hp@redhat.com>
8878
8879         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
8880         cheesy hack
8881
8882         * dbus/dbus-transport-debug.c: rework this a good bit to be
8883         less complicated. hopefully still works.
8884
8885         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
8886         manually
8887
8888         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
8889         after running it
8890
8891         * dbus/dbus-message.c (dbus_message_copy): rename from
8892         dbus_message_new_from_message, fix it up to copy
8893         all the message fields, add test case
8894
8895         * bus/dispatch.c (bus_dispatch_test): add some more test code,
8896         not quite passing yet
8897
8898 2003-03-14  Havoc Pennington  <hp@pobox.com>
8899
8900         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
8901         until no work remains" in test code. (the large diff here
8902         is just code movement, no actual changes)
8903
8904         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
8905         1, no point waiting around for test code.
8906         (_dbus_server_debug_accept_transport): unref the timeout
8907         after adding it (right?)
8908
8909         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
8910
8911 2003-03-13  Havoc Pennington  <hp@redhat.com>
8912
8913         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
8914         out of memory
8915
8916         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
8917         of memory
8918
8919         * dbus/dbus-connection.h: Make AddWatchFunction and
8920         AddTimeoutFunction return a bool so they can fail on out-of-memory
8921
8922         * bus/bus.c (bus_context_new): set up timeout handlers
8923
8924         * bus/connection.c (bus_connections_setup_connection): set up
8925         timeout handlers
8926
8927         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
8928         can fail
8929
8930         * bus/bus.c (bus_context_new): adapt to changes
8931
8932         * bus/connection.c: adapt to changes
8933
8934         * test/watch.c: adapt to DBusWatch changes
8935
8936         * bus/dispatch.c (bus_dispatch_test): started adding this but
8937         didn't finish
8938
8939 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
8940
8941         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
8942
8943 2003-03-13  Havoc Pennington  <hp@pobox.com>
8944
8945         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
8946         set up a test framework as for the library
8947
8948 2003-03-12  Havoc Pennington  <hp@pobox.com>
8949
8950         Throughout: purge global variables, introduce BusActivation,
8951         BusConnections, BusRegistry, etc. objects instead.
8952
8953         * bus/bus.h, bus/bus.c: introduce BusContext as a global
8954         message bus object
8955
8956         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
8957         going to redo this a bit differently I think
8958
8959 2003-03-12  Havoc Pennington  <hp@redhat.com>
8960
8961         Mega-patch that gets the message bus daemon initially handling
8962         out-of-memory. Work still needed. Also lots of random
8963         moving stuff to DBusError instead of ResultCode.
8964
8965         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
8966
8967         * dbus/dbus-connection.c
8968         (dbus_connection_send_with_reply_and_block): use DBusError
8969
8970         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
8971         DBusResultCode
8972
8973         * dbus/dbus-connection.c (dbus_connection_send): drop the result
8974         code here, as the only failure possible is OOM.
8975
8976         * bus/connection.c (bus_connection_disconnect):
8977         rename bus_connection_disconnected as it's a notification only
8978
8979         * bus/driver.c (bus_driver_handle_acquire_service): don't free
8980         "name" on get_args failure, should be done by get_args;
8981         don't disconnect client for bad args, just return an error.
8982         (bus_driver_handle_service_exists): ditto
8983
8984         * bus/services.c (bus_services_list): NULL-terminate returned array
8985
8986         * bus/driver.c (bus_driver_send_service_lost)
8987         (bus_driver_send_service_acquired): send messages from driver to a
8988         specific client to the client's unique name, not to the broadcast
8989         service.
8990
8991         * dbus/dbus-message.c (decode_header_data): reject messages that
8992         contain no name field
8993         (_dbus_message_get_client_serial): rename to
8994         dbus_message_get_serial and make public
8995         (_dbus_message_set_serial): rename from set_client_serial
8996         (_dbus_message_set_reply_serial): make public
8997         (_dbus_message_get_reply_serial): make public
8998
8999         * bus/connection.c (bus_connection_foreach): allow stopping
9000         iteration by returning FALSE from foreach function.
9001
9002         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
9003         (dbus_connection_free_preallocated_send)
9004         (dbus_connection_preallocate_send): new API for sending a message
9005         without possibility of malloc failure.
9006         (dbus_connection_send_message): rename to just
9007         dbus_connection_send (and same for whole function family)
9008
9009         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
9010
9011         * dbus/dbus-sysdeps.c (_dbus_exit): new function
9012
9013         * bus/activation.c: handle/return errors
9014
9015         * dbus/dbus-errors.h: add more DBUS_ERROR #define
9016
9017         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
9018         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
9019         (_dbus_result_from_errno): move to this file
9020
9021 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
9022
9023         * dbus/dbus-marshal.c:
9024         (_dbus_marshal_set_string):
9025         Take a length argument so we can marshal the correct string
9026         length.
9027
9028         (_dbus_marshal_dict), (_dbus_demarshal_dict),
9029         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
9030         (_dbus_marshal_test):
9031         * dbus/dbus-marshal.h:
9032         Add support for marshalling and demarshalling dicts.
9033
9034         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9035         Add support for TYPE DICT.
9036
9037         * dbus/dbus-message.c: (set_string_field):
9038         Adjust header padding.
9039
9040         (dbus_message_append_args_valist), (dbus_message_append_dict),
9041         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
9042         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
9043         (check_message_handling), (check_have_valid_message):
9044         * dbus/dbus-message.h:
9045         Add functions for setting and getting dicts.
9046
9047         * dbus/dbus-protocol.h:
9048         Add DBUS_TYPE_DICT.
9049
9050         * dbus/dbus.h:
9051         Add dbus-dict.h
9052
9053         * doc/dbus-specification.sgml:
9054         Add information about how dicts are marshalled.
9055
9056         * test/data/invalid-messages/dict-with-nil-value.message:
9057         * test/data/invalid-messages/too-short-dict.message:
9058         * test/data/valid-messages/dict-simple.message:
9059         * test/data/valid-messages/dict.message:
9060         Add sample messages containing dicts.
9061
9062 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
9063
9064         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
9065
9066 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
9067
9068         * dbus/Makefile.am:
9069         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9070         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
9071         (dbus_dict_set_int32), (dbus_dict_set_uint32),
9072         (dbus_dict_set_double), (dbus_dict_set_string),
9073         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9074         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9075         (dbus_dict_set_string_array), (_dbus_dict_test):
9076         * dbus/dbus-dict.h:
9077         Fix according to comments from Havoc.
9078
9079 2003-03-06  Michael Meeks  <michael@server.home>
9080
9081         * configure.in: if we don't have kde-config, disable have_qt.
9082
9083 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
9084
9085         * dbus/Makefile.am:
9086         Add dbus-dict.[ch]
9087
9088         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9089         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
9090         (dbus_dict_remove), (dbus_dict_get_value_type),
9091         (dbus_dict_get_keys), (dbus_dict_put_boolean),
9092         (dbus_dict_put_int32), (dbus_dict_put_uint32),
9093         (dbus_dict_put_double), (dbus_dict_put_string),
9094         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
9095         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
9096         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
9097         (dbus_dict_get_int32), (dbus_dict_get_uint32),
9098         (dbus_dict_get_double), (dbus_dict_get_string),
9099         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
9100         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
9101         (dbus_dict_get_string_array), (_dbus_dict_test):
9102         * dbus/dbus-dict.h:
9103         Add DBusDict implementation
9104
9105         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
9106         * dbus/dbus-test.h:
9107         Add _dbus_dict_test
9108
9109 2003-03-04  Havoc Pennington  <hp@pobox.com>
9110
9111         * test/data/auth/*: adapt to changes
9112
9113         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
9114         USERID_BASE64 and change USERNAME_BASE64 to put in username not
9115         userid
9116
9117         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
9118         more stuff from being in a context name, to make the protocol
9119         simpler to deal with
9120
9121         * dbus/dbus-errors.c (dbus_error_has_name): new function
9122         (dbus_error_is_set): new function
9123
9124         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
9125         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
9126
9127         * dbus/dbus-connection.c (dbus_connection_flush): also read
9128         messages during a flush operation
9129
9130         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
9131
9132 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
9133
9134         * configure.in: Check for gethostbyname on Solaris.
9135
9136         * dbus/dbus-transport.c: (_dbus_transport_open):
9137         Remove duplicate "tcp" entry.
9138
9139         * doc/dbus-specification.sgml:
9140         Clarify some things.
9141
9142 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
9143
9144         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
9145         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
9146         (_dbus_keyring_test):
9147         * dbus/dbus-md5.c: (_dbus_md5_compute):
9148         * dbus/dbus-sha.c: (_dbus_sha_compute):
9149         Plug memory leaks.
9150
9151 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
9152
9153         * README: Add some things.
9154
9155 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
9156
9157         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
9158         after case DBUS_TYPE_BOOELAN.
9159
9160 2003-03-02  Havoc Pennington  <hp@pobox.com>
9161
9162         * test/break-loader.c (randomly_set_extreme_ints): add test that
9163         sets really huge and small integers
9164
9165         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
9166         that length of boolean array fits in the string, and that
9167         string has room for boolean value in single-bool case.
9168
9169         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
9170         optional value to "ALIGN" command which is what to fill the
9171         alignment with.
9172
9173         * test/data/valid-messages/no-padding.message: add regression
9174         test for the message padding problem
9175
9176 2003-03-02  Havoc Pennington  <hp@pobox.com>
9177
9178         * dbus/dbus-message.c (decode_header_data): fix to always init
9179         message_padding, from Benjamin Dauvergne
9180
9181 2003-03-02  Havoc Pennington  <hp@pobox.com>
9182
9183         * configure.in: 0.5
9184
9185         * NEWS: Update.
9186
9187 2003-03-01  Joe Shaw  <joe@assbarn.com>
9188
9189         * configure.in: Check for "struct cmsgcred" and try to access its
9190         members for BSD-like unices.
9191
9192         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
9193         _dbus_read_credentials_unix_socket().
9194         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
9195         read() for reading the credential byte off the unix socket.  Use
9196         struct cmsgcred on systems that support it.
9197
9198 2003-02-27  Alexander Larsson  <alexl@redhat.com>
9199
9200         * glib/Makefile.am:
9201         * configure.in:
9202         Make gthreads-2.0 dependency optional. Don't build thread test if
9203         its not found.
9204
9205 2003-02-27  Havoc Pennington  <hp@pobox.com>
9206
9207         * dbus/dbus-connection.c
9208         (dbus_connection_send_message_with_reply_and_block): fix doh!
9209         doh! doh! bug that resulted in never removing a reply from the
9210         queue, no wonder we called get_reply_serial so much ;-)
9211
9212         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
9213         and client serial instead of demarshaling them every time
9214
9215 2003-02-27  Havoc Pennington  <hp@pobox.com>
9216
9217         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
9218         more inlined, using dbus-string-private.h, speeds things up
9219         substantially
9220
9221         * dbus/dbus-string.c (_dbus_string_free): apply align offset
9222         when freeing the string
9223         (_dbus_string_steal_data): fix for align offset
9224         (undo_alignment): new function
9225
9226 2003-02-26  Havoc Pennington  <hp@redhat.com>
9227
9228         All kinds of audit fixes from Owen, plus initial attempt to
9229         handle unaligned memory returned from malloc.
9230
9231         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
9232         leave room for align_offset and nul byte
9233         (fixup_alignment): function to track an align_offset and
9234         ensure real->str is aligned
9235         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
9236         to allow a nul byte plus align offset
9237         (_dbus_string_lock): fix overflow issue
9238         (_dbus_string_init_const_len): add assertions on sanity of len,
9239         assign allocated to be ALLOCATION_PADDING larger than len
9240         (set_length): fixup the overflow handling
9241         (_dbus_string_get_data_len): fix overflow in assertion
9242         (open_gap): detect overflow in size of gap to be opened
9243         (_dbus_string_lengthen): add overflow check
9244         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
9245         (_dbus_string_append): add overflow check
9246         (_dbus_string_append_unichar): overflow
9247         (_dbus_string_delete): fix overflow in assertion
9248         (_dbus_string_copy_len): overflow in assertion
9249         (_dbus_string_replace_len): overflows in assertions
9250         (_dbus_string_find): change to implement in terms of
9251         _dbus_string_find_to
9252         (_dbus_string_find_to): assorted fixage
9253         (_dbus_string_equal_c_str): assert c_str != NULL,
9254         fix logic so the function works
9255         (_dbus_string_ends_with_c_str): fix overflow thingy
9256         (_dbus_string_base64_encode): overflow fix
9257         (_dbus_string_validate_ascii): overflow
9258         (_dbus_string_validate_nul): overflow
9259
9260 2003-02-26  Havoc Pennington  <hp@redhat.com>
9261
9262         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
9263
9264 2003-02-26  Alexander Larsson  <alexl@redhat.com>
9265
9266         * configure.in:
9267         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
9268
9269         * dbus/dbus-connection.c:
9270         * dbus/dbus-connection.h:
9271         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
9272         Add dbus_connection_set_wakeup_main_function and use it when queueing
9273         incoming and outgoing messages.
9274
9275
9276         * dbus/dbus-dataslot.c:
9277         Threadsafe usage of DBusDataSlotAllocator
9278
9279         * dbus/dbus-message.c: (dbus_message_get_args_iter):
9280         dbus_new can fail.
9281
9282         * dbus/dbus-server-unix.c:
9283         Add todo comment
9284
9285         * glib/dbus-gmain.c:
9286         Implement the new wakeup functions for glib.
9287
9288         * glib/Makefile.am:
9289         * glib/test-thread-client.c:
9290         * glib/test-thread-server.c:
9291         * glib/test-thread.h:
9292         Initial cut at some thread test code. Not really done yet.
9293
9294 2003-02-26  Havoc Pennington  <hp@pobox.com>
9295
9296         * dbus/dbus-connection.c
9297         (dbus_connection_send_message_with_reply_and_block): fix crash
9298         where we ref'd the outgoing message instead of the returned reply
9299
9300         * dbus/dbus-transport-unix.c (do_authentication): check read watch
9301         at the end of this function, so if we didn't need to read for
9302         authentication, we reinstall it for receiving messages
9303
9304         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
9305         a NULL sender for peer-to-peer case
9306
9307         * dbus/dbus-transport-unix.c (check_read_watch): handle
9308         !authenticated case correctly
9309
9310         * glib/dbus-gmain.c: add support for DBusServer
9311
9312         * dbus/dbus-server.c: add data slot support
9313
9314         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
9315         return values and handle errors
9316
9317         * dbus/dbus-dataslot.c: factor out the data slot stuff from
9318         DBusConnection
9319
9320         * Doxyfile.in (INPUT): add glib subdir
9321
9322         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
9323         setup_with_g_main instead of hookup_with_g_main; write docs
9324
9325 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
9326
9327         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
9328         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9329         * dbus/dbus-message.c: (dbus_message_append_boolean),
9330         (dbus_message_append_boolean_array),
9331         (dbus_message_get_args_valist), (_dbus_message_test):
9332         * dbus/dbus-message.h:
9333         * doc/dbus-specification.sgml:
9334         Various fixes as pointed out by Havoc.
9335
9336         * test/data/invalid-messages/bad-boolean-array.message:
9337         * test/data/invalid-messages/bad-boolean.message:
9338         Add invalid boolean value test cases.
9339
9340 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
9341
9342         * dbus/dbus-internals.c: (_dbus_type_to_string):
9343         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
9344         (_dbus_marshal_validate_arg):
9345         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9346         * dbus/dbus-message.c: (dbus_message_append_args_valist),
9347         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
9348         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
9349         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
9350         (dbus_message_iter_get_double),
9351         (dbus_message_iter_get_boolean_array), (message_iter_test):
9352         * dbus/dbus-message.h:
9353         * dbus/dbus-protocol.h:
9354         * doc/dbus-specification.sgml:
9355         * test/data/valid-messages/lots-of-arguments.message:
9356         Add support for boolean and boolean array types.
9357
9358 2003-02-23  Havoc Pennington  <hp@pobox.com>
9359
9360         * dbus/dbus-keyring.c: finish most of this implementation and
9361         simple unit test
9362
9363         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
9364         these barf if the error isn't cleared to NULL
9365
9366         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
9367         (_dbus_create_directory): new function
9368
9369         * dbus/dbus-errors.c (dbus_set_error): fix warning
9370
9371         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
9372         (_dbus_string_hex_decode): new function
9373         (test_hex_roundtrip): test code
9374
9375         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
9376
9377         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
9378
9379         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
9380         the save-to-temp/rename trick to atomically write the new file
9381         (_dbus_string_parse_uint): new function
9382
9383 2003-02-22  Havoc Pennington  <hp@pobox.com>
9384
9385         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
9386
9387 2003-02-22  Havoc Pennington  <hp@pobox.com>
9388
9389         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
9390         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
9391
9392         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
9393
9394         * dbus/test/data/sha-1: add US government test suite for SHA-1
9395
9396 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9397
9398         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
9399         Make string arrays NULL-terminated.
9400
9401         * dbus/dbus-memory.c: (dbus_free_string_array):
9402         * dbus/dbus-memory.h:
9403         New function for freeing NULL-terminated string arrays.
9404
9405         * dbus/dbus-message-builder.c: (append_quoted_string),
9406         (_dbus_message_data_load):
9407         Add support for array types.
9408
9409         * dbus/dbus-message.c: (check_message_handling):
9410         Add more types as test cases.
9411
9412         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
9413         (_dbus_string_parse_double):
9414         Add the start offset to the end offset.
9415
9416         * test/data/valid-messages/lots-of-arguments.message:
9417         New test message with lots of arguments.
9418
9419 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9420
9421         * dbus/dbus-message.c: (dbus_message_append_nil),
9422         (dbus_message_append_int32), (dbus_message_append_uint32),
9423         (dbus_message_append_double), (dbus_message_append_string),
9424         (dbus_message_append_int32_array),
9425         (dbus_message_append_uint32_array),
9426         (dbus_message_append_double_array),
9427         (dbus_message_append_byte_array),
9428         (dbus_message_append_string_array):
9429         Fix all out-of-memory handling in these functions.
9430
9431 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9432
9433         * dbus/dbus-message.c: (dbus_message_append_nil):
9434         Fix a silly.
9435
9436 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9437
9438         * dbus/dbus-message.c: (dbus_message_append_args_valist),
9439         (dbus_message_append_nil), (dbus_message_append_int32_array),
9440         (dbus_message_append_uint32_array),
9441         (dbus_message_append_double_array),
9442         (dbus_message_append_byte_array),
9443         (dbus_message_append_string_array), (dbus_message_get_args_valist),
9444         (dbus_message_iter_get_int32_array),
9445         (dbus_message_iter_get_uint32_array),
9446         (dbus_message_iter_get_double_array),
9447         (dbus_message_iter_get_byte_array),
9448         (dbus_message_iter_get_string_array):
9449
9450         * dbus/dbus-message.h:
9451         Add functions for appending and getting arrays.
9452
9453 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9454
9455         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
9456         element size at least 8 bytes, fixes mempool tests on
9457         64-bit machines.
9458
9459 2003-02-20  Alexander Larsson  <alexl@redhat.com>
9460
9461         * dbus/dbus-transport-unix.c (unix_do_iteration):
9462         Unlock the connection mutex during a blocking select call.
9463         Add todo about how we need a way to wake up the select.
9464
9465         * dbus/dbus-connection-internal.h:
9466         * dbus/dbus-connection.c:
9467         Add _dbus_connection_lock and _dbus_connection_unlock.
9468
9469 2003-02-19  Havoc Pennington  <hp@pobox.com>
9470
9471         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
9472         Doxyfile.in, not Doxyfile
9473
9474         * dbus/dbus-keyring.c: do some hacking on this
9475
9476         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
9477
9478         * dbus/dbus-errors.c (dbus_set_error_const): do not call
9479         dbus_error_init
9480         (dbus_set_error): remove dbus_error_init, check for message ==
9481         NULL *before* we sprintf into it, and add @todo about including
9482         system headers in this file
9483
9484         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
9485
9486         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
9487
9488         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
9489         get various bits of user information based on either username
9490         or user ID
9491         (_dbus_homedir_from_username): new function
9492
9493 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
9494
9495         * configure.in:
9496         Add check for nonposix getpwnam_r
9497
9498         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
9499         Align the pool element size to a sizeof (void *) boundary.
9500
9501         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
9502         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
9503         General Solaris fixes.
9504
9505         * test/data/valid-messages/simplest-manual.message:
9506         Explicitly state that we want little-endian packing.
9507
9508 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
9509
9510         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9511
9512         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
9513         Added to create a transport connecting using a tcp/ip socket.
9514
9515         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
9516         to a tcp socket at given host and port.
9517         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
9518         hostname and port.
9519
9520         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9521
9522         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
9523         Added to create a server listening on a TCP/IP socket.
9524
9525 2003-02-19  Havoc Pennington  <hp@pobox.com>
9526
9527         Throughout: mop up all the Doxygen warnings and undocumented
9528         stuff.
9529
9530         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
9531         to search any paths.
9532
9533         * dbus/dbus-threads.c: move global mutex initializers to
9534         dbus-internals.h, multiple prototypes was confusing doxygen
9535         besides being kind of ugly
9536
9537         * Doxyfile (PREDEFINED): have Doxygen define
9538         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
9539         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
9540         (do not abuse the feature! it's for stuff like the autogenerated
9541         macros in dbus-md5.c, not just for things you don't feel like
9542         documenting...)
9543
9544 2003-02-18  Havoc Pennington  <hp@pobox.com>
9545
9546         * dbus/dbus-string.c (_dbus_string_zero): new function
9547
9548         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
9549         wrap it in some dbus-friendly API
9550
9551         * dbus/dbus-types.h: add 16-bit types
9552
9553 2003-02-18  Joe Shaw  <joe@assbarn.com>
9554
9555         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
9556         credentials from our currently running process.
9557         (get_word): Fix a buglet where we were copying the entire length
9558         instead of relative to our position.
9559
9560         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
9561         keys on the stack... it's 640k of data.
9562
9563         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
9564         read the credentials byte off the socket, even if we don't have
9565         SO_PEERCRED.
9566         (_dbus_poll): Implement poll() using select() for systems which
9567         don't have it.
9568
9569         * glib/test-dbus-glib.c (main): Print out an error if no
9570         parameters are given.
9571
9572         * test/data/auth/fallback.auth-script: Added.  Tests that a client
9573         can fallback to a secondary auth mechanism if the first fails.
9574
9575 2003-02-18  Havoc Pennington  <hp@pobox.com>
9576
9577         * AUTHORS: add Alex
9578
9579 2003-02-17  Havoc Pennington  <hp@pobox.com>
9580
9581         * doc/dbus-specification.sgml: lots of cosmetic
9582         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
9583         env variable to DBUS_BUS_ADDRESS, s/client/application/,
9584         s/server/bus/ (except in authentication section). Add a section
9585         "Message Bus Message Routing"
9586
9587 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
9588
9589         Release 0.4
9590
9591         * NEWS: Update
9592
9593 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
9594
9595         * doc/dbus-specification.sgml:
9596         Specification updates.
9597
9598 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
9599
9600         * bus/activation.c: (bus_activation_init), (child_setup),
9601         (bus_activation_activate_service):
9602         * bus/activation.h:
9603         * bus/main.c: (main):
9604         Set DBUS_ADDRESS environment variable.
9605
9606         * dbus/dbus-errors.c: (dbus_set_error):
9607         Don't use va_copy since that's a C99 feature.
9608
9609         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
9610         (_dbus_spawn_async):
9611         * dbus/dbus-sysdeps.h:
9612         Add child_setup_func to _dbus_spawn_async.
9613
9614         * doc/dbus-specification.sgml:
9615         Update specification.
9616
9617         * test/spawn-test.c: (setup_func), (main):
9618         Fix test.
9619
9620 2003-02-17  Alexander Larsson  <alexl@redhat.com>
9621
9622         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
9623         Added todo.
9624
9625 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
9626
9627         * doc/.cvsignore:
9628         * doc/Makefile.am:
9629         * doc/dbus-test-plan.sgml:
9630         Add test plan document.
9631
9632         * test/Makefile.am:
9633         Fix distcheck.
9634
9635 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
9636
9637         * dbus/dbus-message.c: (decode_header_data),
9638         (_dbus_message_loader_return_buffer):
9639         Set the header padding amount when loading a message.
9640
9641 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
9642
9643         * bus/dispatch.c: (send_one_message):
9644         Only send broadcast messages to registered connections.
9645
9646         * dbus/dbus-message.c: (dbus_message_name_is):
9647         * dbus/dbus-message.h:
9648         New convenience function.
9649
9650         * dbus/dbus-transport-debug.c: (do_reading):
9651         Only dispatch one message per run.
9652
9653         * test/Makefile.am:
9654         * test/bus-test.c: (new_connection_callback), (die),
9655         (test_hello_client1_handler), (test_hello_client2_handler),
9656         (test_hello_replies), (main):
9657
9658         * test/bus-test-loop.[ch]:
9659         Add these.
9660
9661 2003-02-16  Havoc Pennington  <hp@pobox.com>
9662
9663         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9664         backward conditional
9665
9666 2003-02-16  Alexander Larsson  <alexl@redhat.com>
9667
9668         * dbus/dbus-connection.c:
9669         Implement sent_message_with_reply. (with_reply_and block is still
9670         busted).
9671         Made dispatch_message not lose message if OOM.
9672
9673         * dbus/dbus-errors.h:
9674         Add NoReply error (for reply timeouts).
9675
9676 2003-02-16  Alexander Larsson  <alexl@redhat.com>
9677
9678         * dbus/dbus-hash.c (_dbus_hash_table_unref):
9679         Actually free keys and values when destroying hashtable.
9680
9681 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
9682
9683         * dbus/dbus-auth.c: (client_try_next_mechanism):
9684         Plug a leak.
9685
9686         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
9687         Return TRUE if there's no thread implementation around.
9688
9689         * glib/dbus-gmain.c: (free_source),
9690         (dbus_connection_hookup_with_g_main):
9691         Make sure to remove the GSource when the connection is finalized.
9692
9693 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
9694
9695         * bus/dispatch.c: (bus_dispatch_message_handler):
9696         * dbus/dbus-errors.h:
9697         Return an error if someone tries to send a message to a service
9698         that doesn't exist.
9699
9700 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
9701
9702         * bus/activation.c: (load_directory), (bus_activation_init),
9703         (bus_activation_activate_service):
9704         * bus/activation.h:
9705         * bus/driver.c:
9706         (bus_driver_handle_activate_service), (bus_driver_handle_message):
9707         More work on the activation handling.
9708
9709         * dbus/dbus-errors.h:
9710         Add some error messages
9711
9712         * dbus/dbus-message.c: (dbus_message_new_error_reply):
9713         * dbus/dbus-message.h:
9714         New function that creates an error message.
9715
9716         * dbus/dbus-protocol.h:
9717         Add ACTIVATE_SERVER message.
9718
9719         * dbus/dbus-server-unix.c: (unix_handle_watch),
9720         (_dbus_server_new_for_domain_socket):
9721         Call _dbus_fd_set_close_on_exec.
9722
9723         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
9724         (_dbus_spawn_async), (_dbus_disable_sigpipe),
9725         (_dbus_fd_set_close_on_exec):
9726         * dbus/dbus-sysdeps.h:
9727         Add _dbus_fd_set_close_on exec function. Also add function that checks
9728         that all open fds are set to close-on-exec and warns otherwise.
9729
9730         * dbus/dbus-transport-unix.c:
9731         (_dbus_transport_new_for_domain_socket):
9732         Call _dbus_fd_set_close_on_exec.
9733
9734 2003-02-16  Havoc Pennington  <hp@pobox.com>
9735
9736         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
9737         allow people to avoid setting SIGPIPE to SIG_IGN
9738         (_dbus_connection_new_for_transport): disable SIGPIPE unless
9739         we've been asked not to
9740
9741 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
9742
9743         * dbus/dbus-list.c: (_dbus_list_append_link),
9744         (_dbus_list_prepend_link):
9745         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
9746         (dbus_realloc):
9747         Warning fixes.
9748
9749 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
9750
9751         * bus/Makefile.am:
9752         * bus/activation.c: (bus_activation_entry_free),
9753         (add_desktop_file_entry), (load_directory), (bus_activation_init):
9754         * bus/activation.h:
9755         * bus/main.c: (main):
9756         Add simple activation support, doesn't work yet though.
9757
9758 2003-02-15   Zack Rusin  <zack@kde.org>
9759
9760         * qt/dbus-qthread.cpp:  small casting fix
9761
9762 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
9763
9764         * dbus/dbus-errors.c: (dbus_set_error):
9765         * dbus/dbus-errors.h:
9766         Add a few errors and make dbus_set_error void.
9767
9768         * dbus/dbus-sysdeps.c:
9769         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
9770         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
9771         * dbus/dbus-sysdeps.h:
9772         Add _dbus_spawn_async.
9773
9774         * test/spawn-test.c: (main):
9775         Test for _dbus_spawn_async.
9776
9777 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
9778
9779         * dbus/dbus-internals.h:
9780         Fix build without tests.
9781
9782         * dbus/dbus-list.c: (alloc_link):
9783         Fix a segfault when a malloc fails.
9784
9785         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
9786         (dbus_malloc0), (dbus_realloc):
9787         Add support for malloc debugging.
9788
9789 2003-02-15  Alexander Larsson  <alexl@redhat.com>
9790
9791         * dbus/dbus-threads.c:
9792         * dbus/dbus-threads.h:
9793         Add condvars. Remove static mutext from API.
9794         Implement static mutexes by initializing them from threads_init.
9795
9796         * glib/dbus-gthread.c:
9797         * qt/dbus-qthread.cpp:
9798         Update with the thread api changes.
9799
9800
9801         * dbus/dbus-list.c:
9802         * dbus/dbus-list.h:
9803         Turn StaticMutex into normal mutex + init function.
9804         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
9805         _dbus_list_append_link, _dbus_list_prepend_link
9806
9807
9808         * dbus/dbus-sysdeps.c:
9809         * dbus/dbus-sysdeps.h:
9810         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
9811         _dbus_atomic_dec. Only slow fallback implementation at the moment.
9812
9813         * dbus/dbus-protocol.h:
9814         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
9815
9816         * dbus/dbus-message.c:
9817         Make ref/unref atomic.
9818         Fix some docs.
9819
9820         * dbus/dbus-connection-internal.h:
9821         * dbus/dbus-connection.c:
9822         * dbus/dbus-connection.h:
9823         Make threadsafe.
9824         Change _peek to _borrow,_return & _steal_borrowed.
9825         Change disconnect callback to event.
9826         Make dbus_connection_dispatch_messages reentrant.
9827
9828         * dbus/dbus-transport.c:
9829         Don't ref the connection on calls to the transport
9830         implementation.
9831
9832         * dbus/dbus-message-handler.c:
9833         Make threadsafe.
9834
9835         * glib/dbus-gmain.c:
9836         Don't use peek_message anymore
9837
9838         * test/Makefile.am:
9839         * test/debug-thread.c:
9840         * test/debug-thread.h:
9841         Simple thread implementation that asserts() on deadlocks in
9842         single-threaded code.
9843
9844         * test/bus-test.c:
9845         (main) Call debug_threads_init.
9846
9847         * test/watch.c:
9848         Use disconnect message instead of disconnect callback.
9849
9850         * bus/connection.c:
9851         * bus/connection.h:
9852         Don't call dbus_connection_set_disconnect_function. Instead export
9853         bus_connection_disconnect.
9854
9855         * bus/dispatch.c:
9856         Call bus_connection_disconnect when we get a disconnected message.
9857
9858 2003-02-15  Havoc Pennington  <hp@pobox.com>
9859
9860         * dbus/dbus-message.c (dbus_message_new): fool around with the
9861         docs
9862
9863 2003-02-14  Havoc Pennington  <hp@pobox.com>
9864
9865         * dbus/dbus-mempool.c: fail if the debug functions so indicate
9866
9867         * dbus/dbus-memory.c: fail if the debug functions indicate we
9868         should
9869
9870         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
9871         (_dbus_decrement_fail_alloc_counter): debug functions to
9872         simulate memory allocation failures
9873
9874 2003-02-14  Havoc Pennington  <hp@pobox.com>
9875
9876         * dbus/dbus-errors.h (struct DBusError): add a word of padding
9877         to DBusError
9878
9879 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9880
9881         * bus/driver.c: (bus_driver_handle_hello):
9882         * bus/driver.h:
9883         * bus/services.c: (bus_service_lookup):
9884         Reorder message sending so we get a more sane order.
9885
9886         * test/bus-test.c: (message_handler):
9887         Fix tyop.
9888
9889 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9890
9891         * bus/driver.c: (bus_driver_send_service_deleted),
9892         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9893         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
9894         (bus_driver_send_welcome_message),
9895         (bus_driver_handle_list_services),
9896         (bus_driver_handle_acquire_service),
9897         (bus_driver_handle_service_exists):
9898         * dbus/dbus-bus.c: (dbus_bus_register_client),
9899         (dbus_bus_acquire_service), (dbus_bus_service_exists):
9900         * dbus/dbus-errors.c: (dbus_result_to_string):
9901         * dbus/dbus-errors.h:
9902         * dbus/dbus-message.c: (dbus_message_append_args),
9903         (dbus_message_append_args_valist), (dbus_message_get_args),
9904         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
9905         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
9906         (dbus_message_iter_get_byte_array),
9907         (dbus_message_iter_get_string_array), (message_iter_test),
9908         (check_message_handling), (_dbus_message_test):
9909         * dbus/dbus-message.h:
9910         * test/bus-test.c: (main):
9911         Change fields to arguments in messages, so that they won't be
9912         confused with header fields.
9913
9914         * glib/test-dbus-glib.c: (main):
9915         Remove append_fields from hello message.
9916
9917 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9918
9919         * dbus/dbus-errors.c:
9920         * dbus/dbus-message.c:
9921         * dbus/dbus-string.c:
9922         Documentation fixes.
9923
9924 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9925
9926         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
9927         (remove_timeout):
9928         Implement support for timeouts in dbus-glib.
9929
9930 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9931
9932         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9933         * dbus/dbus-message.c: (process_test_subdir):
9934         * test/break-loader.c: (find_breaks_based_on):
9935         Plug some memory leaks.
9936
9937 2003-02-13  Richard Hult  <rhult@codefactory.se>
9938
9939         * bus/main.c: Fix build.
9940
9941         * dbus/dbus-errors.h:
9942         * dbus/dbus-errors.c: Fix copyright for Anders.
9943
9944 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9945
9946         * bus/Makefile.am:
9947         Add utils.[ch]
9948
9949         * bus/connection.c: (bus_connection_foreach):
9950         Fix a warning.
9951
9952         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
9953         (unescape_string), (new_section), (parse_section_start),
9954         (parse_key_value), (report_error), (bus_desktop_file_load),
9955         (bus_desktop_file_get_string):
9956         * bus/desktop-file.h:
9957         Use DBusError for error reporting.
9958
9959         * bus/dispatch.c: (send_one_message),
9960         (bus_dispatch_message_handler):
9961         * bus/driver.c: (bus_driver_send_service_deleted),
9962         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9963         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
9964         (bus_driver_send_welcome_message),
9965         (bus_driver_handle_list_services),
9966         (bus_driver_handle_acquire_service),
9967         (bus_driver_handle_service_exists):
9968         * bus/loop.c: (bus_loop_run):
9969         * bus/main.c:
9970         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
9971
9972         * bus/utils.c: (bus_wait_for_memory):
9973         * bus/utils.h:
9974         New files with general utility functions.
9975
9976         * dbus/dbus-internals.h:
9977         Remove _DBUS_HANDLE_OOM.
9978
9979 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9980
9981         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
9982         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
9983         * dbus/dbus-errors.h:
9984         Add DBusError structure.
9985
9986 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9987
9988         * test/data/valid-messages/standard-acquire-service.message:
9989         * test/data/valid-messages/standard-hello.message:
9990         * test/data/valid-messages/standard-list-services.message:
9991         * test/data/valid-messages/standard-service-exists.message:
9992         Add some standard messages.
9993
9994 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9995
9996         * bus/driver.c: (bus_driver_send_welcome_message),
9997         (bus_driver_handle_list_services),
9998         (bus_driver_handle_acquire_service),
9999         (bus_driver_handle_service_exists), (bus_driver_handle_message):
10000         Update for API changes in libdbus.
10001
10002         * dbus/dbus-message.c: (dbus_message_new_reply):
10003         * dbus/dbus-message.h:
10004         Remove the name argument. The spec states that replies shouldn't
10005         have a name.
10006
10007 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10008
10009         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
10010         (report_error), (bus_desktop_file_load), (lookup_section),
10011         (lookup_line), (bus_desktop_file_get_raw),
10012         (bus_desktop_file_get_string):
10013         * bus/desktop-file.h:
10014         Some fixes, and new functions for getting a key value from a section.
10015
10016 2003-02-13  Havoc Pennington  <hp@pobox.com>
10017
10018         * test/data/auth/fail-after-n-attempts.auth-script: new test
10019
10020         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
10021         reject the client.
10022
10023 2003-02-13  Havoc Pennington  <hp@pobox.com>
10024
10025         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
10026         dbus_credentials_match were backward
10027
10028         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
10029         NO_CREDENTIALS and ROOT_CREDENTIALS
10030
10031         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
10032         into here. Never process more commands after we've reached an
10033         end state; store further data as unused bytes.
10034
10035         * test/data/auth/*: add more auth tests
10036
10037         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
10038         command to match exact string and EXPECT_UNUSED to match unused
10039         bytes
10040
10041         * test/Makefile.am (dist-hook): fix to dist all the test stuff
10042
10043 2003-02-12  Havoc Pennington  <hp@pobox.com>
10044
10045         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
10046         \r off of popped lines
10047
10048         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
10049         scripts
10050
10051         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
10052         SEND, append \r\n
10053
10054 2003-02-12  Havoc Pennington  <hp@pobox.com>
10055
10056         * dbus/Makefile.am: remove break-loader from the build, since it
10057         moved.
10058
10059         * configure.in: add --enable-gcov to turn on coverage profiling
10060         flags and disable optimization
10061
10062 2003-02-10  Havoc Pennington  <hp@pobox.com>
10063
10064         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
10065         initial cut at test framework for DBusAuth from laptop.
10066         Doesn't quite work yet but it compiles and I need to get
10067         it off the 266mhz laptop. ;-)
10068
10069         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
10070         fix a memleak in error case
10071
10072 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
10073
10074         * bus/Makefile.am:
10075         * bus/desktop-file.c:
10076         * bus/desktop-file.h:
10077         Add a desktop file parser.
10078
10079 2003-02-11  Zack Rusin  <zack@kde.org>
10080
10081         * qt/message.[h|cpp]: sample implementation
10082         of the KDE wrapper for DBusMessage
10083
10084 2003-02-09  Zack Rusin  <zack@kde.org>
10085
10086         * test/bus-test.c: make_it_compile
10087         * doc/dbus-specification.sgml: minimal semantic fix
10088
10089 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
10090
10091         Release 0.3
10092
10093         * NEWS: Update
10094
10095 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
10096
10097         * dbus/Makefile.am:
10098         * dbus/dbus-break-loader.c:
10099         * test/Makefile.am:
10100         * test/break-loader.c:
10101         Move dbus-break-loader to test/ and rename it to break-loader.
10102
10103 2003-02-02  Havoc Pennington  <hp@pobox.com>
10104
10105         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
10106         for code to manage cookies in your home directory
10107
10108         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
10109
10110         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
10111         to authenticate, then disconnect the client.
10112
10113 2003-02-03  Alexander Larsson  <alexl@redhat.com>
10114
10115         * dbus/dbus-message.c (dbus_message_append_fields):
10116         Correct docs.
10117
10118 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10119
10120         * doc/dbus-specification.sgml:
10121         Update address format section.
10122
10123 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10124
10125         * test/Makefile.am:
10126         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
10127         (message_handler), (new_connection_callback), (loop_quit),
10128         (loop_run), (main):
10129         Add bus test.
10130
10131 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10132
10133         * bus/driver.c: (bus_driver_handle_service_exists):
10134         Simplify the code a bit.
10135
10136         * dbus/dbus-bus.c: (dbus_bus_service_exists):
10137         Fix a silly.
10138
10139 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10140
10141         * bus/Makefile.am:
10142         Add libdbus-daemon.la and link to it.
10143
10144 2003-02-01  James Willcox  <jwillcox@gnome.org>
10145
10146         * bus/driver.c: (bus_driver_handle_own_service):
10147         Actually include the service reply code in the message.
10148
10149 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10150
10151         * bus/driver.c: (bus_driver_handle_service_exists):
10152         Don't unref the incoming message.
10153
10154 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10155
10156         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
10157
10158 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10159
10160         * dbus/dbus-server.c: (dbus_server_listen):
10161         * dbus/dbus-transport.c: (_dbus_transport_open):
10162         ifdef out the calls to the debug transport and server.
10163
10164 2003-02-02  Alexander Larsson  <alexl@redhat.com>
10165
10166         * dbus/dbus-watch.c (dbus_watch_get_flags):
10167         Add note in the docs that ERROR or HANGUP won't be returned
10168         and are assumed always on.
10169
10170         * glib/dbus-gmain.c (add_watch):
10171         Always add IO_ERR | IO_HUP
10172
10173         * dbus/dbus-message.h:
10174         Add semicolon after dbus_message_iter_get_string_array().
10175         Makes qt code build again
10176
10177 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
10178
10179         * bus/driver.c: (create_unique_client_name),
10180         (bus_driver_handle_hello):
10181         Don't take a name, just use a numeric id to identify
10182         each client.
10183
10184         * dbus/Makefile.am:
10185         * dbus/dbus-bus.c: (dbus_bus_register_client),
10186         (dbus_bus_acquire_service), (dbus_bus_service_exists):
10187         * dbus/dbus-bus.h:
10188         Add new convenience functions for communicating with the bus.
10189
10190         * dbus/dbus-message.h:
10191
10192         * dbus/dbus-protocol.h:
10193         Fix a typo.
10194
10195 2003-02-01  Alexander Larsson  <alexl@redhat.com>
10196
10197         * dbus/dbus-message.c (dbus_message_append_fields):
10198         Add some more doc comments.
10199
10200 2003-02-01  Havoc Pennington  <hp@pobox.com>
10201
10202         * dbus/dbus-break-loader.c (randomly_modify_length): change
10203         a 4-byte value in the message as if it were a length
10204
10205         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
10206         execute bit on saved files
10207
10208 2003-02-01  Havoc Pennington  <hp@pobox.com>
10209
10210         * dbus/dbus-break-loader.c (main): new program to find messages
10211         that break the loader.
10212
10213         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
10214         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
10215
10216         * dbus/dbus-string.c (_dbus_string_set_byte): new
10217
10218 2003-01-31  Havoc Pennington  <hp@pobox.com>
10219
10220         * dbus/dbus-message.c: refactor the test code to be more general,
10221         in preparation for writing a "randomly permute test cases to
10222         try to break the loader" program.
10223
10224 2003-01-31  Havoc Pennington  <hp@pobox.com>
10225
10226         * doc/dbus-specification.sgml: work on the specification
10227
10228         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
10229         the protocol version of the message.
10230
10231         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
10232         no longer specifies that.
10233         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
10234         1/2/3/4)
10235
10236         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
10237         "break" for DBUS_TYPE_NIL, remove @todo
10238
10239 2003-01-31  Havoc Pennington  <hp@pobox.com>
10240
10241         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
10242         just set_is_error/get_is_error as this is a commonly-used
10243         function, and write docs.
10244
10245 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
10246
10247         * dbus/dbus-address.c: (dbus_address_entry_free):
10248         Free key and value lists.
10249
10250         * dbus/dbus-internals.c: (_dbus_type_to_string):
10251         Add the types we didn't have.
10252
10253         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10254         (_dbus_marshal_validate_arg):
10255         Add NIL types.
10256
10257         * dbus/dbus-message.c: (dbus_message_set_sender):
10258         Remove todo about being able to set sender to NULL.
10259
10260         (dbus_message_set_is_error_reply),
10261         (dbus_message_get_is_error_reply):
10262         * dbus/dbus-message.h:
10263         New functions.
10264
10265         * dbus/dbus-protocol.h:
10266         Add error reply flag.
10267
10268         * test/data/valid-messages/opposite-endian.message:
10269         Add NIL type to test.
10270
10271 2003-01-31  Havoc Pennington  <hp@pobox.com>
10272
10273         * doc/dbus-specification.sgml: fully specify the header.  Add
10274         flags and major protocol version, and change header/body len to
10275         unsigned.
10276
10277         * dbus/dbus-message-builder.c (append_saved_length): append length
10278         as uint32
10279
10280         * dbus/dbus-message.c (dbus_message_create_header): change header
10281         length and body length to unsigned. Add the new fields from the
10282         spec
10283         (_dbus_message_loader_return_buffer): unsigned header/body len
10284
10285 2003-01-30  Havoc Pennington  <hp@pobox.com>
10286
10287         * dbus/dbus-auth.c: rework to use only REJECTED, no
10288         MECHANISMS
10289
10290         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
10291         use REJECTED, suggested by Mark McLoughlin
10292
10293 2003-01-30  Havoc Pennington  <hp@pobox.com>
10294
10295         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
10296         a better way to report errors here. e.g.  "unix address lacks
10297         path" or something. also "no such file" when the path doesn't
10298         exist, etc.
10299
10300         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
10301         leaking list nodes
10302         (dbus_parse_address): add @todo about documenting address format,
10303         and allowing , and ; to be escaped
10304
10305 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
10306
10307         * dbus/Makefile.am:
10308         Add dbus-address.[ch]
10309
10310         * dbus/dbus-address.c: (dbus_address_entry_free),
10311         (dbus_address_entries_free), (create_entry),
10312         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
10313         (dbus_parse_address), (_dbus_address_test):
10314         * dbus/dbus-address.h:
10315         New files for dealing with address parsing.
10316
10317         * dbus/dbus-connection.c:
10318         Document timeout functions.
10319
10320         * dbus/dbus-message.c:
10321         Document dbus_message_new_from_message.
10322
10323         * dbus/dbus-server-debug.c:
10324         Document.
10325
10326         * dbus/dbus-server.c: (dbus_server_listen):
10327         Parse address and use correct server implementation.
10328
10329         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
10330         * dbus/dbus-string.h:
10331         New function with test.
10332
10333         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
10334         * dbus/dbus-test.h:
10335         Add address tests.
10336
10337         * dbus/dbus-transport-debug.c:
10338         Document.
10339
10340         * dbus/dbus-transport.c: (_dbus_transport_open):
10341         Parse address and use correct transport implementation.
10342
10343 2003-01-30  Havoc Pennington  <hp@pobox.com>
10344
10345         * dbus/dbus-message.c: use message->byte_order instead of
10346         DBUS_COMPILER_BYTE_ORDER throughout.
10347         (dbus_message_create_header): pad header to align the
10348         start of the body of the message to 8-byte boundary
10349
10350         * dbus/dbus-marshal.h: make all the demarshalers take const
10351         DBusString arguments.
10352
10353         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
10354         validate message args here, so we don't have to do slow validation
10355         later, and so we catch bad messages as they are incoming. Also add
10356         better checks on header_len and body_len. Also fill in
10357         message->byte_order
10358
10359         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
10360         implemented properly)
10361         (_dbus_string_validate_nul): new function to check all-nul
10362
10363         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
10364         get_arg_end_pos and remove all validation
10365         (_dbus_marshal_validate_arg): actually do validation here.
10366
10367 2003-01-29  Havoc Pennington  <hp@pobox.com>
10368
10369         * dbus/dbus-message.c (check_message_handling): fix assertion
10370         failure on set_client_serial
10371
10372 2003-01-28  Havoc Pennington  <hp@pobox.com>
10373
10374         * dbus/dbus-server-debug.c: Add doc section comments
10375
10376         * dbus/dbus-transport-debug.c: add doc section comments
10377
10378 2003-01-28  Havoc Pennington  <hp@redhat.com>
10379
10380         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
10381         the reverse order from how I had it
10382         (_dbus_string_base64_encode): reverse encoding order. I was
10383         basically byteswapping everything during encoding.
10384
10385 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
10386
10387         * dbus/dbus-connection-internal.h:
10388         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
10389         (_dbus_connection_remove_timeout):
10390         Add functions for adding and removing timeouts.
10391
10392         * dbus/dbus-message.c: (dbus_message_new_from_message):
10393         Add new function that takes a message and creates an exact
10394         copy of it, but with the refcount set to 1.
10395         (check_message_handling):
10396         Fix build error.
10397
10398         * dbus/dbus-server-protected.h:
10399         * dbus/dbus-server.c: (_dbus_server_init_base),
10400         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
10401         (dbus_server_set_timeout_functions):
10402         (_dbus_server_remove_timeout):
10403         New functions so that a server can add and remove timeouts.
10404
10405         (dbus_server_listen):
10406         Add commented out call to dbus_server_debug_new.
10407
10408         * dbus/dbus-timeout.c: (_dbus_timeout_new):
10409         Actually set the handler, doh.
10410
10411         * dbus/dbus-transport.c: (_dbus_transport_open):
10412         Add commented out call to dbus_transport_debug_client_new.
10413
10414         * dbus/Makefile.am:
10415         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
10416
10417 2003-01-28  Havoc Pennington  <hp@pobox.com>
10418
10419         * dbus/dbus-message.c (check_message_handling): function to check
10420         on the loaded message, iterates over it etc.
10421
10422 2003-01-28  Havoc Pennington  <hp@pobox.com>
10423
10424         * test/Makefile.am (dist-hook): fix make distdir
10425
10426         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
10427
10428 2003-01-27  Havoc Pennington  <hp@pobox.com>
10429
10430         * dbus/dbus-mempool.c (time_for_size): replace printf with
10431         _dbus_verbose
10432
10433         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
10434         empty lines; fix the SAVE_LENGTH stuff to be
10435         START_LENGTH/END_LENGTH so it actually works; couple other
10436         bugfixes
10437
10438         * test/Makefile.am (dist-hook): add dist-hook for .message files
10439
10440         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
10441         can be constant or locked.
10442         (_dbus_string_free): allow freeing a const string as
10443         documented/intended
10444
10445         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
10446
10447         * dbus/dbus-test-main.c (main): take an argument which is the
10448         directory containing test data
10449
10450         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
10451         argument to this and load all the messages in test/data/
10452         checking that they can be loaded or not loaded as appropriate.
10453
10454 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
10455
10456         * bus/dispatch.c: (bus_dispatch_message_handler):
10457         Dispatch messages sent to services.
10458
10459         * bus/driver.c: (bus_driver_send_service_deleted),
10460         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10461         (bus_driver_send_service_acquired):
10462         Add helper functions for sending service related messages.
10463
10464         (bus_driver_send_welcome_message):
10465         Send HELLO_REPLY instead of WELCOME.
10466
10467         (bus_driver_handle_list_services):
10468         Send LIST_SERVICES_REPLY instead of SERVICES.
10469
10470         (bus_driver_handle_own_service),
10471         (bus_driver_handle_service_exists):
10472         New message handlers.
10473
10474         (bus_driver_handle_message):
10475         Invoke new message handlers.
10476
10477         (bus_driver_remove_connection):
10478         Don't remove any services here since that's done automatically
10479         by bus_service_remove_owner now.
10480
10481         * bus/driver.h:
10482         New function signatures.
10483
10484         * bus/services.c: (bus_service_add_owner):
10485         Send ServiceAcquired message if we're the only primary owner.
10486
10487         (bus_service_remove_owner):
10488         Send ServiceAcquired/ServiceLost messages.
10489
10490         (bus_service_set_prohibit_replacement),
10491         (bus_service_get_prohibit_replacement):
10492         Functions for setting prohibit replacement.
10493
10494         (bus_service_has_owner):
10495         New function that checks if a connection is in the owner queue of
10496         a certain service.
10497
10498         * bus/services.h:
10499         Add new function signatures.
10500
10501         * dbus/dbus-list.c: (_dbus_list_test):
10502         Add tests for _dbus_list_remove_last and traversing the list backwards.
10503
10504         * dbus/dbus-list.h:
10505         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
10506         go any further, so return NULL then.
10507
10508         * dbus/dbus-protocol.h:
10509         Add new messages, service flags and service replies.
10510
10511 2003-01-26  Havoc Pennington  <hp@pobox.com>
10512
10513         * dbus/dbus-message-builder.c: implement, completely untested.
10514
10515         * test/data/*: add data to be used in testing.
10516         ".message" files are our simple loadable text format.
10517         ".message-raw" will be binary dumps of messages.
10518
10519         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
10520
10521 2003-01-26  Havoc Pennington  <hp@pobox.com>
10522
10523         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
10524
10525         * dbus/dbus-errors.c (dbus_result_to_string): add
10526         file errors
10527
10528         * dbus/dbus-message-builder.c: new file, will contain code to load
10529         up messages from files. Not implemented yet.
10530
10531 2003-01-26  Havoc Pennington  <hp@pobox.com>
10532
10533         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
10534         the sender by setting to NULL
10535
10536 2003-01-26  Havoc Pennington  <hp@pobox.com>
10537
10538         The unit tests pass, but otherwise untested.  If it breaks, the
10539         tests should have been better. ;-)
10540
10541         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
10542         the connection.
10543
10544         * dbus/dbus-message.c: redo everything so we maintain
10545         message->header as the only copy of the various fields.
10546         This avoids the possibility of out-of-memory in some cases,
10547         for example dbus_message_lock() can't run out of memory anymore,
10548         and avoids extra copying. Figured I may as well go ahead and do
10549         this since it was busted for dbus_message_lock to not return
10550         failure on OOM, and dbus_message_write_header was totally
10551         unchecked for OOM. Also fixed some random other bugs.
10552
10553         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
10554         that strings are nul-terminated. Also, end_pos can be equal
10555         to string length just not greater than, I think.
10556         (_dbus_marshal_set_int32): new function
10557         (_dbus_marshal_set_uint32): new function
10558         (_dbus_marshal_set_string): new function
10559
10560         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
10561         a warning, init timeout_list to NULL
10562         (dbus_connection_send_message): don't use uninitialized variable
10563         "serial"
10564
10565         * dbus/dbus-string.c (_dbus_string_replace_len): new function
10566
10567 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
10568
10569         * bus/driver.c: (bus_driver_handle_hello),
10570         (bus_driver_send_welcome_message):
10571         Plug leaks
10572
10573 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
10574
10575         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
10576         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
10577         (dbus_connection_unref):
10578         * dbus/dbus-marshal.c: (_dbus_marshal_test):
10579         * dbus/dbus-message.c: (dbus_message_unref),
10580         Plug memory leaks.
10581
10582         (dbus_message_get_fields):
10583         Remove debugging printout.
10584
10585         (_dbus_message_loader_return_buffer):
10586         Don't store the header string.
10587
10588         (_dbus_message_test):
10589         Plug leaks.
10590
10591 2003-01-26  Richard Hult  <rhult@codefactory.se>
10592
10593         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
10594         the file descriptor list, since it can change under us.
10595
10596 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10597
10598         * glib/dbus-gmain.c: (dbus_connection_prepare),
10599         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
10600         (remove_watch), (dbus_connection_hookup_with_g_main):
10601         Rewrite the glib handling to use its own GSource instead of a
10602         GIOChannel so we can catch messages put in the queue while waiting
10603         for a reply.
10604
10605 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10606
10607         * bus/Makefile.am:
10608         * bus/connection.c: (connection_disconnect_handler),
10609         (connection_watch_callback), (bus_connection_setup):
10610         * bus/dispatch.c: (send_one_message),
10611         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
10612         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
10613         * bus/dispatch.h:
10614         * bus/driver.c: (bus_driver_send_service_deleted),
10615         (bus_driver_send_service_created), (bus_driver_handle_hello),
10616         (bus_driver_send_welcome_message),
10617         (bus_driver_handle_list_services), (bus_driver_remove_connection),
10618         (bus_driver_handle_message):
10619         * bus/driver.h:
10620         Refactor code, put the message dispatching in its own file. Use
10621         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
10622         is disconnected.
10623
10624 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10625
10626         * dbus/dbus-internals.h:
10627         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
10628
10629         * dbus/dbus-message.c: (dbus_message_get_sender):
10630         * dbus/dbus-message.h:
10631         Implement dbus_message_get_sender.
10632
10633         * dbus/dbus-protocol.h:
10634         Add message and service defines.
10635
10636 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10637
10638         * dbus/dbus-connection.c: (dbus_connection_send_message):
10639         * dbus/dbus-message-internal.h:
10640         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
10641         (dbus_message_write_header):
10642         Remove _dbus_messag_unlock and don't set the client serial on a
10643         message if one already exists.
10644
10645 2003-01-24  Havoc Pennington  <hp@pobox.com>
10646
10647         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
10648         list_pool
10649
10650         * bus/driver.c (bus_driver_handle_list_services): fix a leak
10651         on OOM
10652
10653 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10654
10655         * dbus/dbus-list.c: (alloc_link), (free_link):
10656         Use a memory pool for the links.
10657
10658 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10659
10660         * bus/connection.c: (bus_connection_foreach):
10661         * bus/connection.h:
10662         Add new bus_connection_foreach function.
10663
10664         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
10665         Add function that broadcasts a message to all clients.
10666
10667         (bus_driver_send_service_created), (bus_driver_handle_hello),
10668         (bus_driver_send_welcome_message),
10669         (bus_driver_handle_list_services), (bus_driver_message_handler):
10670         Implement functions that take care of listing services, and notifying
10671         clients when new services are created.
10672
10673         * bus/services.c: (bus_services_list):
10674         * bus/services.h:
10675         Add new function that returns an array of strings with the currently
10676         registered services.
10677
10678         * glib/dbus-glib.h:
10679         * glib/dbus-gmain.c:
10680         Update copyright year.
10681
10682 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10683
10684         * dbus/dbus-connection.c: (dbus_connection_send_message):
10685         Unlock the message in case it was sent earlier.
10686
10687         (dbus_connection_send_message_with_reply_and_block):
10688         Remove the reply message from the list.
10689
10690         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10691         Set array_len and new_pos correctly.
10692
10693         (_dbus_marshal_test):
10694         Remove debug output.
10695
10696         * dbus/dbus-message-internal.h:
10697         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
10698         New function that returns the reply serial.
10699
10700         (_dbus_message_unlock):
10701         New function that unlocks a message and resets its header.
10702
10703         (dbus_message_append_string_array),
10704         (dbus_message_get_fields_valist),
10705         (dbus_message_iter_get_field_type),
10706         (dbus_message_iter_get_string_array),
10707         (dbus_message_get_fields),
10708         (dbus_message_append_fields_valist):
10709         Handle string arrays.
10710
10711         (dbus_message_set_sender):
10712         Make this function public since the bus daemon needs it.
10713
10714         (decode_header_data):
10715         Set the reply serial to -1 initially.
10716
10717         * dbus/dbus-message.h:
10718         Add dbus_message_set_sender.
10719
10720 2003-01-24  Havoc Pennington  <hp@pobox.com>
10721
10722         * doc/dbus-specification.sgml: add some stuff
10723
10724 2003-01-22  Havoc Pennington  <hp@pobox.com>
10725
10726         * doc/dbus-specification.sgml: Start to document the protocol.
10727
10728 2003-01-22  Havoc Pennington  <hp@pobox.com>
10729
10730         * dbus/dbus-connection.c
10731         (dbus_connection_send_message_with_reply_and_block): add some @todo
10732
10733         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
10734
10735 2003-01-21  Havoc Pennington  <hp@pobox.com>
10736
10737         (patch untested because can't compile)
10738
10739         * bus/driver.c (create_unique_client_name): make this function
10740         never recycle client names. Also, caller should initialize
10741         the DBusString.
10742
10743         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
10744
10745 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
10746
10747         * dbus/dbus-marshal.c: (_dbus_marshal_double),
10748         (_dbus_marshal_int32), (_dbus_marshal_uint32),
10749         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
10750         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
10751         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10752         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10753         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
10754         * dbus/dbus-marshal.h:
10755         * dbus/dbus-protocol.h:
10756         Add support for marshalling and demarshalling integer, double
10757         and string arrays.
10758
10759 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
10760
10761         * bus/Makefile.am:
10762         Add driver.[ch]
10763
10764         * bus/connection.c: (connection_disconnect_handler):
10765         Remove the connection from the bus driver's list.
10766
10767         (connection_watch_callback): Dispatch messages.
10768
10769         (free_connection_data): Free connection name.
10770
10771         (bus_connection_setup): Add connection to the bus driver's list.
10772         (bus_connection_remove_owned_service):
10773         (bus_connection_set_name), (bus_connection_get_name):
10774         Add functions for setting and getting the connection's name.
10775
10776         * bus/connection.h:
10777         Add function headers.
10778
10779         * bus/driver.c: (create_unique_client_name),
10780         (bus_driver_handle_hello_message),
10781         (bus_driver_send_welcome_message), (bus_driver_message_handler),
10782         (bus_driver_add_connection), (bus_driver_remove_connection):
10783         * bus/driver.h:
10784         * bus/main.c:
10785         * bus/services.c: (bus_service_free):
10786         * bus/services.h:
10787         New file that handles communication and registreation with the bus
10788         itself.
10789
10790 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
10791
10792         * dbus/dbus-connection.c: (dbus_connection_send_message):
10793         Add a new client_serial parameter.
10794
10795         (dbus_connection_send_message_with_reply):
10796         Remove a @todo since we've implemented the blocking function.
10797
10798         (dbus_connection_send_message_with_reply_and_block):
10799         New function that sends a message and waits for a reply and
10800         then returns the reply.
10801
10802         * dbus/dbus-connection.h:
10803         Add new functions.
10804
10805         * dbus/dbus-errors.c: (dbus_result_to_string):
10806         * dbus/dbus-errors.h:
10807         Add new DBUS_RESULT.
10808
10809         * dbus/dbus-message-internal.h:
10810         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
10811         (_dbus_message_set_sender), (dbus_message_write_header),
10812         (dbus_message_new_reply), (decode_header_data),
10813         (_dbus_message_loader_return_buffer), (_dbus_message_test):
10814         * dbus/dbus-message.h:
10815         Add new functions that set the reply serial and sender.
10816         Also marshal and demarshal them correctly and add test.
10817
10818         * dbus/dbus-protocol.h:
10819         Add new DBUS_MESSAGE_TYPE_SENDER.
10820
10821         * glib/dbus-glib.h:
10822         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
10823         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
10824         (dbus_connection_hookup_with_g_main):
10825         * glib/test-dbus-glib.c: (main):
10826         Rewrite to use GIOChannel and remove the GSource crack.
10827
10828         * test/echo-client.c: (main):
10829         * test/watch.c: (check_messages):
10830         Update for changed APIs
10831
10832 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
10833
10834         * dbus/Makefile.am: Add dbus-timeout.[cħ]
10835
10836         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
10837         Create a DBusTimeoutList.
10838         (dbus_connection_set_timeout_functions): Add new function to
10839         set timeout callbacks
10840
10841         * dbus/dbus-connection.h: Add public DBusTimeout API.
10842
10843         * dbus/dbus-message.c: (dbus_message_get_service):
10844         * dbus/dbus-message.h:  New function.
10845
10846         * dbus/dbus-server.c: Fix small doc typo.
10847
10848         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
10849
10850 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
10851
10852         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
10853         of the string, just as long as specified.
10854
10855 2003-01-19  Havoc Pennington  <hp@pobox.com>
10856
10857         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
10858         new function
10859
10860         * dbus/dbus-server.c (dbus_server_set_max_connections)
10861         (dbus_server_get_max_connections, dbus_server_get_n_connections):
10862         keep track of current number of connections, and add API for
10863         setting a max (but haven't implemented enforcing the max yet)
10864
10865 2003-01-18  Havoc Pennington  <hp@pobox.com>
10866
10867         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
10868         reading/writing if read_watch != NULL or write_watch != NULL.
10869
10870         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
10871         the message loader code to actually load message->header and
10872         message->body into the newly-created message.
10873
10874         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
10875         in OOM case
10876
10877         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
10878         (dbus_connection_get_max_message_size)
10879         (dbus_connection_set_max_live_messages_size)
10880         (dbus_connection_get_max_live_messages_size): implement some
10881         resource limitation functions
10882
10883         * dbus/dbus-resources.c: new file implementing some of the
10884         resource limits stuff
10885
10886         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
10887         missing docs, add @todo to handle OOM etc.
10888
10889         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
10890         docs
10891
10892 2003-01-18  Havoc Pennington  <hp@pobox.com>
10893
10894         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
10895         connection if it hasn't been already.
10896
10897         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
10898         replace with DisconnectFunction.
10899
10900 2003-01-18  Havoc Pennington  <hp@pobox.com>
10901
10902         Building --disable-verbose-mode --disable-asserts --disable-tests
10903         cuts the library from 112K to 45K or so
10904
10905         * configure.in: check for varargs macro support,
10906         add --enable-verbose-mode, --enable-asserts.
10907
10908         * dbus/dbus-internals.h (_dbus_assert): support
10909         DBUS_DISABLE_ASSERT
10910         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
10911
10912 2003-01-18  Havoc Pennington  <hp@pobox.com>
10913
10914         * dbus/dbus-test.c: include config.h so that tests actually run
10915
10916         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
10917         so the failure mode when that assumption fails will be plenty
10918         obvious.
10919
10920 2003-01-18  Havoc Pennington  <hp@pobox.com>
10921
10922         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
10923
10924         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
10925         the distribution
10926
10927         * test/Makefile.am: don't use special variable "TESTS" for echo-*
10928         since we don't want to use those in make check
10929
10930 2003-01-15  Havoc Pennington  <hp@redhat.com>
10931
10932         Release 0.2
10933
10934         * NEWS: update
10935
10936 2003-01-15  Havoc Pennington  <hp@redhat.com>
10937
10938         * test/Makefile.am: fix so that test source code ends up in the
10939         distribution on make distcheck
10940
10941 2003-01-15  Havoc Pennington  <hp@redhat.com>
10942
10943         Release 0.1.
10944
10945         * NEWS: update
10946
10947 2003-01-15  Havoc Pennington  <hp@redhat.com>
10948
10949         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
10950         fix build when --disable-tests
10951
10952         * Makefile.am (EXTRA_DIST): put HACKING in here
10953
10954         * HACKING: document procedure for making a tarball release.
10955
10956 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
10957
10958         * bus/connection.c: (connection_error_handler),
10959         (bus_connection_setup):
10960         * bus/main.c: (main):
10961         Make sure that the DBusConnectionData struct is NULLed
10962         out to prevent a segfault.
10963
10964         * dbus/dbus-errors.c: (dbus_result_to_string):
10965         * dbus/dbus-errors.h:
10966         * dbus/dbus-message.c: (dbus_message_get_fields),
10967         (dbus_message_get_fields_valist), (_dbus_message_test):
10968         * dbus/dbus-message.h:
10969         Make dbus_message_get_fields return a result code so we can
10970         track invalid fields as well as oom.
10971
10972 2003-01-11  Havoc Pennington  <hp@pobox.com>
10973
10974         * configure.in: change --enable-test/--enable-ansi action-if-given
10975         to enable_foo=$enableval instead of enable_foo=yes
10976
10977 2003-01-08  Havoc Pennington  <hp@pobox.com>
10978
10979         * dbus/dbus-string.c (_dbus_string_align_length): new function
10980
10981         * dbus/dbus-test-main.c: move main() for test app here
10982         * dbus/dbus-test.c
10983         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
10984         symbol to run tests, because dbus-test isn't in the main
10985         library
10986
10987         Code review nitpicks.
10988
10989         * dbus/dbus-message.c (dbus_message_write_header): add newlines
10990         for people with narrow emacs ;-). Assert client_serial was filled
10991         in. Assert message->name != NULL.
10992         (dbus_message_append_fields): have "first_field_type" arg separate
10993         from va list, needed for C++ binding that also uses varargs IIRC
10994         and helps with type safety
10995         (dbus_message_new): add @todo about using DBusString to store
10996         service/name internally
10997         (dbus_message_new): don't leak ->service and ->name on OOM later
10998         in the function
10999         (dbus_message_unref): free the service name
11000         (dbus_message_get_fields): same change to varargs
11001         i.e. first_field_type
11002         (_dbus_message_loader_return_buffer): assert that the message data
11003         is aligned (if not it's a bug in our code). Put in verbose griping
11004         about why we set corrupted = TRUE.
11005         (decode_header_data): add FIXME that char* is evil.  Was going to
11006         add FIXME about evil locale-specific string.h strncmp, but just
11007         switched to wacky string-as-uint32 optimization. Move check for
11008         "no room for field name" above get_const_data_len() to avoid
11009         assertion failure in get_const_data_len if we have trailing 2
11010         bytes or the like. Check for service and name fields being
11011         provided twice. Don't leak service/name on error. Require field
11012         names to be aligned to 4 bytes.
11013
11014         * dbus/dbus-marshal.c: move byte swap stuff to header
11015         (_dbus_pack_int32): uscore-prefix
11016         (_dbus_unpack_int32): uscore-prefix
11017         (_dbus_unpack_uint32): export
11018         (_dbus_demarshal_string): add @todo complaining about use of
11019         memcpy()
11020         (_dbus_marshal_get_field_end_pos): add @todo about bad error
11021         handling allowing corrupt data to go unchecked
11022
11023 2003-01-08  Havoc Pennington  <hp@redhat.com>
11024
11025         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
11026         to the select() as needed for authentication. (should be using
11027         _dbus_poll() not select, but for another day)
11028
11029         * dbus/dbus.h: include dbus/dbus-protocol.h
11030
11031 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
11032
11033         * dbus/Makefile.am (dbusinclude_HEADERS): Install
11034         dbus-connection.h
11035
11036 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
11037
11038         * dbus/dbus-internals.c: (_dbus_type_to_string):
11039         New function that returns a string describing a type.
11040
11041         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
11042         * dbus/dbus-marshal.h:
11043         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
11044         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
11045         (dbus_message_iter_get_byte_array):
11046         * dbus/dbus-message.h:
11047         Add new convenience functions for appending and getting message fields.
11048         Also add demarshalling routines for byte arrays.
11049
11050 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
11051
11052         * dbus/dbus-connection-internal.h:
11053         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11054         (_dbus_connection_get_next_client_serial),
11055         (dbus_connection_send_message):
11056         * dbus/dbus-internals.h:
11057         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
11058         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
11059         (_dbus_marshal_uint32), (_dbus_demarshal_double),
11060         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
11061         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
11062         (_dbus_verbose_bytes), (_dbus_marshal_test):
11063         * dbus/dbus-marshal.h:
11064         * dbus/dbus-message-internal.h:
11065         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
11066         (dbus_message_write_header), (_dbus_message_lock),
11067         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
11068         (dbus_message_get_name), (dbus_message_append_int32),
11069         (dbus_message_append_uint32), (dbus_message_append_double),
11070         (dbus_message_append_string), (dbus_message_append_byte_array),
11071         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
11072         (dbus_message_iter_unref), (dbus_message_iter_has_next),
11073         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
11074         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
11075         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
11076         (decode_header_data), (_dbus_message_loader_return_buffer),
11077         (message_iter_test), (_dbus_message_test):
11078         * dbus/dbus-message.h:
11079         * dbus/dbus-protocol.h:
11080         * dbus/dbus-test.c: (main):
11081         * dbus/dbus-test.h:
11082         * glib/test-dbus-glib.c: (message_handler), (main):
11083         * test/echo-client.c: (main):
11084         * test/watch.c: (check_messages):
11085         Make messages sendable and receivable for real.
11086
11087 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
11088
11089         * dbus/dbus-marshal.c: (_dbus_marshal_double),
11090         (_dbus_marshal_string), (_dbus_marshal_byte_array):
11091         * dbus/dbus-message.c: (dbus_message_append_int32),
11092         (dbus_message_append_uint32), (dbus_message_append_double),
11093         (dbus_message_append_string), (dbus_message_append_byte_array):
11094         Handle OOM restoration.
11095
11096 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
11097
11098         * dbus/dbus-marshal.c: (_dbus_marshal_string),
11099         (_dbus_demarshal_string), (_dbus_marshal_test):
11100         * dbus/dbus-marshal.h:
11101         * dbus/dbus-message.c: (dbus_message_get_name),
11102         Document these functions.
11103
11104         (dbus_message_append_int32), (dbus_message_append_uint32),
11105         (dbus_message_append_double), (dbus_message_append_string),
11106         (dbus_message_append_byte_array):
11107         * dbus/dbus-message.h:
11108         Add functions for adding message fields of different types.
11109
11110         * dbus/dbus-protocol.h:
11111         Add the different types.
11112
11113 2003-01-05  Havoc Pennington  <hp@pobox.com>
11114
11115         * bus/connection.c: implement routines for handling connections,
11116         first thing is keeping a list of owned services on each connection
11117         and setting up watches etc.
11118
11119         * bus/services.c: implement a mapping from service names to lists
11120         of connections
11121
11122         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
11123
11124         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
11125         to use static mutexes for global data
11126
11127         * dbus/dbus-connection.c (dbus_connection_set_data): add new
11128         collection of functions to set/get application-specific data
11129         on the DBusConnection.
11130
11131 2003-01-04  Havoc Pennington  <hp@pobox.com>
11132
11133         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
11134         (_dbus_poll): new function
11135
11136         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
11137         copied from GLib
11138
11139         * bus/loop.c: initial code for the daemon main loop
11140
11141 2003-01-04  Havoc Pennington  <hp@pobox.com>
11142
11143         * test/watch.c (error_handler): make it safe if the error handler
11144         is called multiple times (if we s/error handler/disconnect
11145         handler/ we should just guarantee it's called only once)
11146
11147         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
11148         error handler on disconnect (it's quite possible we should
11149         just change the error handler to a "disconnect handler," I'm
11150         not sure we have any other meaningful errors)
11151
11152         * configure.in: check for getpwnam_r
11153
11154         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
11155         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
11156         mechanism as in SASL spec, using socket credentials
11157
11158         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
11159         (_dbus_send_credentials_unix_socket): new function
11160
11161         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
11162         dbus_accept()
11163         (_dbus_write): only check errno if <0 returned
11164         (_dbus_write_two): ditto
11165
11166 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
11167
11168         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
11169         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
11170         (_dbus_marshal_test):
11171         * dbus/dbus-marshal.h:
11172         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
11173         to _dbus_marshal_utf8_string. Also fix some tests.
11174
11175 2002-12-28  Harri Porten  <porten@kde.org>
11176
11177         * configure.in: added check for C++ compiler and a very cheesy
11178         check for the Qt integration
11179
11180         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
11181
11182         * qt/Makefile.am: added
11183
11184         * qt/.cvsignore: added
11185
11186         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
11187         latter, added #ifdef QT_THREAD_SUPPORT guard.
11188
11189         * dbus/Makefile.am: added missing headers for make dist
11190
11191 2002-12-28  Kristian Rietveld  <kris@gtk.org>
11192
11193         * dbus/Makefile.am: fixup export-symbols-regex.
11194
11195 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
11196
11197         * acinclude.m4: Add this file and put the
11198         PKG_CHECK_MODULE macro in it.
11199
11200 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
11201
11202         * dbus/dbus-marshal.c: (_dbus_marshal_string),
11203         (_dbus_demarshal_double), (_dbus_demarshal_int32),
11204         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11205         (_dbus_marshal_test):
11206         Make the demarshalling routines align the pos argument.
11207         Add string marshalling tests and fix the obvious bugs
11208         discovered.
11209
11210 2002-12-26  Havoc Pennington  <hp@pobox.com>
11211
11212         * dbus/dbus-auth.c: fixes fixes fixes
11213
11214         * dbus/dbus-transport-unix.c: wire up support for
11215         encoding/decoding data on the wire
11216
11217         * dbus/dbus-auth.c (_dbus_auth_encode_data)
11218         (_dbus_auth_decode_data): append to target string
11219         instead of nuking it.
11220
11221 2002-12-26  Havoc Pennington  <hp@pobox.com>
11222
11223         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
11224         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
11225         doh
11226
11227         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
11228         avoid swap_bytes() overhead (ignoring possible assembly stuff for
11229         now). Main point is because I wanted unpack_uint32 to implement
11230         _dbus_verbose_bytes
11231         (_dbus_verbose_bytes): new function
11232
11233         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
11234
11235         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
11236         mechanism to handle a corrupt message stream
11237         (_dbus_message_loader_new): fix preallocation to only prealloc,
11238         not prelengthen
11239
11240         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
11241         (_dbus_string_test): enhance tests for copy/move and fix the
11242         functions
11243
11244         * dbus/dbus-transport-unix.c: Hold references in more places to
11245         avoid reentrancy problems
11246
11247         * dbus/dbus-transport.c: ditto
11248
11249         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
11250         leak reference count in no-message case
11251
11252         * test/watch.c (do_mainloop): handle adding/removing watches
11253         during iteration over the watches. Also, ref the connection/server
11254         stored on a watch, so we don't try to mangle a destroyed one.
11255
11256         * dbus/dbus-transport-unix.c (do_authentication): perform
11257         authentication
11258
11259         * dbus/dbus-auth.c (get_state): add a state
11260         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
11261         (_dbus_auth_get_unused_bytes): append the unused bytes
11262         to the passed in string, rather than prepend
11263
11264         * dbus/dbus-transport.c (_dbus_transport_init_base): create
11265         the auth conversation DBusAuth
11266
11267         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
11268         (_dbus_transport_new_for_domain_socket): when creating a
11269         transport, pass in whether it's a client-side or server-side
11270         transport so we know which DBusAuth to create
11271
11272 2002-12-03  Havoc Pennington  <hp@pobox.com>
11273
11274         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
11275         _after_ finalizing the derived members
11276         (unix_connection_set): unref watch if we fail to add it
11277
11278         * dbus/dbus-connection.c (dbus_connection_unref): delete the
11279         transport first, so that the connection owned by the
11280         transport will be valid as the transport finalizes.
11281
11282         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
11283         if necessary, and remove watches from the connection.
11284
11285         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
11286
11287 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
11288
11289         * dbus/dbus-marshal.c: (_dbus_marshal_string),
11290         (_dbus_demarshal_double), (_dbus_demarshal_int32),
11291         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11292         (_dbus_marshal_test):
11293         * dbus/dbus-marshal.h:
11294         Add string marshal functions and have the demarshal functions
11295         return the new position.
11296
11297 2002-12-25  Havoc Pennington  <hp@pobox.com>
11298
11299         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
11300         it is a simple protocol that just maps directly to SASL.
11301
11302         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
11303         initial implementation, not actually used yet.
11304
11305         * dbus/dbus-string.c (_dbus_string_find): new function
11306         (_dbus_string_equal): new function
11307         (_dbus_string_base64_encode): new function
11308         (_dbus_string_base64_decode): new function
11309
11310 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
11311
11312         * dbus/Makefile.am:
11313         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
11314         (_dbus_marshal_int32), (_dbus_marshal_uint32),
11315         (_dbus_demarshal_double), (_dbus_demarshal_int32),
11316         (_dbus_demarshal_uint32), (_dbus_marshal_test):
11317         * dbus/dbus-marshal.h:
11318         * dbus/dbus-protocol.h:
11319         * dbus/dbus-test.c: (main):
11320         * dbus/dbus-test.h:
11321         Add un-optimized marshalling/demarshalling routines.
11322
11323 2002-12-25  Harri Porten  <porten@kde.org>
11324
11325         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
11326
11327 2002-12-24  Zack Rusin  <zack@kde.org>
11328
11329         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
11330         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
11331         main loop stuff
11332
11333 2002-12-24  Havoc Pennington  <hp@pobox.com>
11334
11335         * glib/dbus-gthread.c: fix include
11336
11337         * glib/dbus-glib.h: rename DBusMessageHandler for now.
11338         I think glib API needs to change, though, as you don't
11339         want to use DBusMessageFunction, you want to use the
11340         DBusMessageHandler object. Probably
11341         dbus_connection_open_with_g_main_loop()
11342         and dbus_connection_setup_g_main_loop() or something like that
11343         (but think of better names...) that just create a connection
11344         that has watch/timeout functions etc. already set up.
11345
11346         * dbus/dbus-connection.c
11347         (dbus_connection_send_message_with_reply): new function just to
11348         show how the message handler helps us deal with replies.
11349
11350         * dbus/dbus-list.c (_dbus_list_remove_last): new function
11351
11352         * dbus/dbus-string.c (_dbus_string_test): free a string that
11353         wasn't
11354
11355         * dbus/dbus-hash.c: use memory pools for the hash entries
11356         (rebuild_table): be more paranoid about overflow, and
11357         shrink table when we can
11358         (_dbus_hash_test): reduce number of sprintfs and write
11359         valid C89. Add tests for case where we grow and then
11360         shrink the hash table.
11361
11362         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
11363
11364         * dbus/dbus-connection.c (dbus_connection_register_handler)
11365         (dbus_connection_unregister_handler): new functions
11366
11367         * dbus/dbus-message.c (dbus_message_get_name): new
11368
11369         * dbus/dbus-list.c: fix docs typo
11370
11371         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
11372         an object representing a handler for messages.
11373
11374 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
11375
11376         * glib/dbus-glib.h:
11377         * glib/dbus-gthread.c: (dbus_gthread_init):
11378         Don't use the gdbus prefix for public functions.
11379
11380 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
11381
11382         * Makefile.am:
11383         * configure.in:
11384         Add GLib checks and fixup .pc files
11385
11386         * glib/Makefile.am:
11387         * glib/dbus-glib.h:
11388         * glib/dbus-gmain.c: (gdbus_connection_prepare),
11389         (gdbus_connection_check), (gdbus_connection_dispatch),
11390         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
11391         (dbus_connection_gsource_new):
11392         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
11393         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
11394         * glib/test-dbus-glib.c: (message_handler), (main):
11395         Add GLib support.
11396
11397 2002-12-15  Harri Porten  <porten@kde.org>
11398
11399         * autogen.sh: check for libtoolize before attempting to use it
11400
11401         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
11402         struct.
11403
11404         * .cvsignore: ignore more stamp files
11405
11406         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
11407
11408         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
11409         without make install.
11410
11411 2002-12-15  Havoc Pennington  <hp@pobox.com>
11412
11413         * dbus/dbus-threads.c: add thread stubs that a higher library
11414         layer can fill in. e.g. the GLib wrapper might fill them in with
11415         GThread stuff. We still need to use this thread API to
11416         thread-safe-ize the library.
11417
11418 2002-12-12  Havoc Pennington  <hp@pobox.com>
11419
11420         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
11421         below new interfaces and include fewer system headers.
11422
11423         * dbus/dbus-sysdeps.c (_dbus_read): new function
11424         (_dbus_write): new function
11425         (_dbus_write_two): new function
11426         (_dbus_connect_unix_socket): new function
11427         (_dbus_listen_unix_socket): new function
11428
11429         * dbus/dbus-message-internal.h: change interfaces to use
11430         DBusString
11431
11432 2002-12-11  Havoc Pennington  <hp@pobox.com>
11433
11434         * dbus/dbus-types.h: add dbus_unichar
11435
11436         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
11437
11438         * dbus/dbus-connection.c (dbus_connection_send_message): return
11439         TRUE on success
11440
11441         * dbus/dbus-transport.c: include dbus-watch.h
11442
11443         * dbus/dbus-connection.c: include dbus-message-internal.h
11444
11445         * HACKING: add file with coding guidelines stuff.
11446
11447         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
11448         handling here, for security purposes (as in vsftpd). Not actually
11449         using this class yet.
11450
11451         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
11452         system/libc usage here, as in vsftpd, for ease of auditing (and
11453         should also simplify portability). Haven't actually moved all the
11454         system/libc usage into here yet.
11455
11456 2002-11-25  Havoc Pennington  <hp@pobox.com>
11457
11458         * dbus/dbus-internals.c (_dbus_verbose): fix to not
11459         always print the first verbose message.
11460
11461 2002-11-24  Havoc Pennington  <hp@pobox.com>
11462
11463         * test/echo-client.c, test/echo-server.c: cheesy test
11464         clients.
11465
11466         * configure.in (AC_CHECK_FUNCS): check for writev
11467
11468         * dbus/dbus-message.c (_dbus_message_get_network_data): new
11469         function
11470
11471         * dbus/dbus-list.c (_dbus_list_foreach): new function
11472
11473         * dbus/dbus-internals.c (_dbus_verbose): new function
11474
11475         * dbus/dbus-server.c, dbus/dbus-server.h: public object
11476         representing a server that listens for connections.
11477
11478         * dbus/.cvsignore: create
11479
11480         * dbus/dbus-errors.h, dbus/dbus-errors.c:
11481         public API for reporting errors
11482
11483         * dbus/dbus-connection.h, dbus/dbus-connection.c:
11484         public object representing a connection that
11485         sends/receives messages. (Same object used for
11486         both client and server.)
11487
11488         * dbus/dbus-transport.h, dbus/dbus-transport.c:
11489         Basic abstraction for different kinds of stream
11490         that we might read/write messages from.
11491
11492 2002-11-23  Havoc Pennington  <hp@pobox.com>
11493
11494         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
11495         _DBUS_INT_MAX
11496
11497         * dbus/dbus-test.c (main): add list test, and include
11498         dbus-test.h as intended
11499
11500         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
11501         (_dbus_hash_table_remove_int): return value indicates
11502         whether the entry existed to remove
11503
11504         * dbus/dbus-list.c: add linked list utility class,
11505         with docs and tests
11506
11507         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
11508         array sometimes.
11509
11510 2002-11-23  Havoc Pennington  <hp@pobox.com>
11511
11512         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
11513         DBUS_END_DECLS to nothing, that should fix this once and for all
11514
11515         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
11516
11517         * dbus/dbus-message.c, dbus/dbus-hash.c:
11518         add some missing @brief
11519
11520 2002-11-23  Havoc Pennington  <hp@pobox.com>
11521
11522         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
11523         to avoid confusing Doxygen
11524
11525         * dbus/dbus-hash.c: @} not }@
11526
11527         * dbus/dbus-message.c (struct DBusMessage): split out
11528         internals docs
11529
11530 2002-11-23  Havoc Pennington  <hp@pobox.com>
11531
11532         * configure.in: pile on more warning flags if using gcc
11533
11534         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
11535         to document static functions
11536
11537         * configure.in: add summary to end of configure so it
11538         looks nice and attractive
11539
11540         * dbus/dbus-hash.c: finish implementation and write unit
11541         tests and docs
11542
11543         * configure.in: add --enable-tests to enable unit tests
11544
11545         * dbus/dbus-test.c: test program to run unit tests
11546         for all files in dbus/*, initially runs a test for
11547         dbus-hash.c
11548
11549         * dbus/dbus-internals.h: file to hold some internal utility stuff
11550
11551 2002-11-22  Havoc Pennington  <hp@redhat.com>
11552
11553         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
11554         "ported" away from Tcl
11555
11556         * dbus/dbus-types.h: header for types such as dbus_bool_t
11557
11558 2002-11-22  Havoc Pennington  <hp@redhat.com>
11559
11560         * dbus/dbus.h: fixups for doc warnings
11561
11562         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
11563         macros
11564         (QUIET): make it quiet so we can see warnings
11565
11566         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
11567
11568 2002-11-22  Havoc Pennington  <hp@redhat.com>
11569
11570         * Makefile.am: include "Doxyfile" target in all-local
11571
11572         * configure.in: generate the Doxyfile
11573
11574         * Doxyfile.in: move Doxyfile here, so we can use
11575         configure to generate a Doxyfile with the right
11576         version number etc.
11577
11578 2002-11-22  Havoc Pennington  <hp@redhat.com>
11579
11580         * dbus/dbus-message.c: move inline docs into .c file
11581
11582         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
11583         so all docs are under doc/
11584         (MAN_EXTENSION): generate man pages. Use extension
11585         ".3dbus" which matches ".3qt" on my system,
11586         I guess this is OK, I don't know really.
11587         (FILE_PATTERNS): look for .c files not .h, makes sense
11588         for plain C I think
11589
11590 2002-11-22  Havoc Pennington  <hp@pobox.com>
11591
11592         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
11593         because any app can be a server, and any app can be a client,
11594         the bus is a special kind of server.
11595
11596 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
11597
11598         * Doxyfile : adding. Still needs Makefile rules to be generated
11599         automatically (just run "doxygen" in the toplevel dir for now to
11600         generate docs)
11601
11602         * dbus/dbus-message.h : Adding sample docs (javadoc since
11603         resembles gtk-doc a little more)
11604
11605         * dbus/dbus.h : Adding sample docs
11606
11607 2002-11-21  Havoc Pennington  <hp@redhat.com>
11608
11609         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
11610         so we can allow ourselves to include files directly,
11611         instead of having to use dbus.h
11612
11613         * dbus/dbus.h: fill in
11614
11615         * dbus/dbus-message.h: sketch out a sample header file.
11616         Include griping if you include it directly instead of
11617         via dbus.h
11618
11619         * dbus/dbus-macros.h: new file with macros for extern "C",
11620         TRUE/FALSE, NULL, etc.
11621
11622         * doc/file-boilerplate.c: put include guards in here
11623
11624 2002-11-21  Havoc Pennington  <hp@redhat.com>
11625
11626         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
11627
11628         * COPYING: include the GPL as well, and license code
11629         under both AFL and GPL.
11630
11631 2002-11-21  Havoc Pennington  <hp@redhat.com>
11632
11633         * acconfig.h: get rid of this
11634
11635         * autogen.sh (run_configure): add --no-configure option
11636
11637         * configure.in: remove AC_ARG_PROGRAM to make
11638         autoconf complain less. add AC_PREREQ.
11639         add AC_DEFINE third arg.
11640
11641 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
11642
11643         * doc/Makefile.am:
11644         Fix references so we can distcheck.
11645
11646 2002-11-21  Havoc Pennington  <hp@redhat.com>
11647
11648         * Initial module creation
11649