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