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