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