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