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