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