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