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