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