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