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