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