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