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