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