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