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