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