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