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