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