1 2005-04-23 Havoc Pennington <hp@redhat.com>
3 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4 reported by Tony Houghton
6 * test/test-service.c (main): test
7 dbus_connection_get_object_path_data()
9 * dbus/dbus-object-tree.c (find_handler): be sure we always init
11 (_dbus_object_tree_get_user_data_unlocked): new function used by
12 dbus_connection_get_object_path_data()
13 (do_register): add assertion test for get_user_data_unlocked
14 (object_tree_test_iteration): more tests
16 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
17 new function from Dan Reed to let you get the user data from
18 dbus_connection_register_object_path()
20 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
22 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
23 in numerous places that did not account for the NULL terminator
24 (signature_from_seed): changed the manual string copy loop to
25 just use strcpy instead
26 make check should now pass
28 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
30 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
31 so that it allows messages that are not signals to pass in
32 NULL as the interface.
34 2005-04-18 David Zeuthen <davidz@redhat.com>
36 * glib/dbus-gmain.c (io_handler_destroy_source):
37 (timeout_handler_destroy_source, connection_setup_free):
38 Also unref the source to avoid memory leaks.
40 2005-04-13 David Zeuthen <davidz@redhat.com>
42 * bus/config-parser.c (bus_config_parser_new): Bump this to a
43 more reasonable, yet still totally arbitrary, value :-).
45 2005-04-13 David Zeuthen <davidz@redhat.com>
47 * doc/TODO: Added an "important for 1.0" item about selinux
50 2005-04-13 David Zeuthen <davidz@redhat.com>
52 * bus/selinux.c: Add c-file-style to top of file
53 (log_audit_callback): Don't free the data here anymore
54 (bus_selinux_check): Don't take spid and tpid since appending
55 that to auxdata may OOM.
56 (bus_selinux_allows_acquire_service): Handle OOM and signal back
57 to the caller if we are OOM by taking an error object.
58 (bus_selinux_allows_send): -do-
60 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
61 and bus_selinux_allows_send
63 * bus/bus.c (bus_context_check_security_policy): Pass error and
64 pass on OOM thrown by bus_selinux_allows_send()
66 * bus/services.c (bus_registry_acquire_service): Pass error and
67 pass on OOM thrown by bus_selinux_allows_acquire_service()
69 2005-04-13 Havoc Pennington <hp@redhat.com>
71 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
72 message at a time to avoid monopolizing the main loop, bug
73 #2953 from Benjamin Otte
75 2005-04-09 Havoc Pennington <hp@redhat.com>
77 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
78 possible overlap, fix from Daniel Reed
79 (fixup_alignment): fix signedness warnings
80 (_dbus_string_append_unichar): ditto
82 2005-04-09 Havoc Pennington <hp@redhat.com>
84 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
86 * glib/dbus-glib-tool.c (main): fix warning
88 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
90 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
91 add a new function that can be used in simple applications that
92 don't have a main loop and are willing to block
94 2005-04-05 David Zeuthen <davidz@redhat.com>
96 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
99 (io_handler_destroy_source): Remove from list of IO handlers
100 of the ConnectionSetup object
101 (timeout_handler_destroy_source): -do- for timeout handlers
102 (io_handler_source_finalized): Don't remove from list since
103 we now do that in io_handler_destroy_source(). Renamed from
104 io_handler_source_destroyed
105 (timeout_handler_source_destroyed): -do- for timeout handlers
106 (connection_setup_free): It is now safe to iterate over all
107 IO and timeout handlers as the _destroy_source removes them
108 from the list synchronously
110 2005-03-30 Havoc Pennington <hp@redhat.com>
112 * configure.in: change check to gtk 2.4
114 * tools/dbus-viewer.c (name_combo_changed_callback): remove
115 gtk_combo_box_get_active_text() usage to decrement GTK requirement
118 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
122 * HACKING: Fixed realease instructions. configure.in should be updated to
123 the next release by the person who made the last release.
125 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
127 * python/lvalue_cast_post_process.py - removed. Patch has been
128 submitted to Pyrex maintainers that fixes gcc4.0 errors
130 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
132 2005-03-24 Daniel Reed <n@ml.org>
134 * tools/Makefile.am: Make print-introspect and
135 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
137 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
139 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
141 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
142 had in Red Hat packages for a while but for some reason never
144 (_dbus_is_a_number): New checks if a string
145 can be converted to a number and does the conversion if it can
146 (_dbus_user_database_lookup): Add check to see if the given username
147 is a udi. This allows udi's to be used instead of usernames in the
149 (_dbus_user_database_lookup_group): Add check to see if the given groupname
150 is a gdi. This allows gdi's to be used instead of groupnames in the
153 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
155 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
156 code so that it compiles with gcc4.0
158 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
159 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
160 results back to dbus_binding.c
162 2005-03-20 Colin Walters <walters@verbum.org>
164 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
166 * configure.in: Require GTK+ 2.6.
168 2005-03-20 Colin Walters <walters@verbum.org>
170 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
172 2005-03-17 Tom Parker <palfrey@tevp.net>
174 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
175 print DBUS_UID_UNSET; instead print passed username. Also
176 be sure to actually use gid looked up in cache.
178 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
179 for DBUS_GID_UNSET and groupname.
181 2005-03-17 Colin Walters <walters@verbum.org>
183 * bus/print-introspect.c: Move to tools/.
184 * bus/run-with-tmp-session-bus.sh: Ditto.
186 * glib/Makefile.am (dbus-glib-bindings.h): Move
187 generation to tools/Makefile.am.
189 * test/glib/run-test.sh: Update to handle move
190 of run-with-tmp-session-bus.sh.
192 * test/glib/test-service-glib.c: Update to handle
193 move of dbus-glib-bindings.h.
195 * tools/print-introspect.c: Moved here
196 from bus/, and ported to GLib bindings.
198 * tools/run-with-tmp-session-bus.sh: Moved here
201 * tools/Makefile.am: Generate dbus-glib-bindings.h
202 and dbus-bus-introspect.xml here.
204 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
207 2005-03-17 Colin Walters <walters@verbum.org>
209 * bus/driver.c (write_args_for_direction): Use
210 _dbus_string_get_const_data to retrieve string;
211 _dbus_string_get_const_data_len doesn't actually return
212 a NULL-terminated substring.
214 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
215 (main): Change to use org_freedesktop_DBus_request_name
216 instead of using g_proxy_begin_call/end_call.
218 2005-03-15 Joe Shaw <joeshaw@novell.com>
220 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
221 generating the finalizer. Fixes from Ben Maurer.
223 2005-03-12 Joe Shaw <joeshaw@novell.com>
225 * mono/BusDriver.cs: Update method names: ListServices
226 becomes ListNames; GetOwner becomes GetNameOwner.
228 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
229 onto the eval stack when removing the delegate.
231 2005-03-12 Joe Shaw <joeshaw@novell.com>
233 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
234 LT_CURRENT. Set it to the autoconf variable.
236 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
237 classes that disconnects the signal handler delegate from the
238 service object. Fixes a big leak of proxy objects on the
239 client side of things. Patch from Ben Maurer
242 2005-03-12 Colin Walters <walters@verbum.org>
244 * bus/driver.c (write_args_for_direction): New function,
245 parses a type signature into arguments and outputs to
247 (bus_driver_handle_introspect): Use it instead of
248 hardcoding XML for certain signatures.
250 * bus/Makefile.am (dbus-bus-introspect.xml): Add
251 dependency on dbus-daemon.
253 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
254 argument, pass it to dbus_binding_tool_output_glib_client.
256 * glib/dbus-binding-tool-glib.c
257 (generate_client_glue): Protect against multiple inclusion.
258 (dbus_binding_tool_output_glib_client): Add
259 G_BEGIN_DECLS/G_END_DECLS.
261 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
262 Change to just take iface prefix directly.
263 (write_formal_parameters): Clarify error message.
264 (check_supported_parameters): New function; checks to see type
265 signatures of method parameters are supported.
266 (generate_client_glue): Handle ignore_unsupported flag.
267 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
270 * glib/Makefile.am (dbus-glib-bindings.h): Pass
271 --ignore-unsupported by default until glib bindings
274 2005-03-11 Colin Walters <walters@verbum.org>
276 * glib/Makefile.am: Generate dbus-glib-bindings.h and
279 * bus/print-introspect.c: New file; prints introspection
280 data for a given name and object path.
282 * bus/run-with-tmp-session-bus.sh: New file, refactored
283 from test/glib/run-test.sh. Creates a temporary session
284 bus and runs another program.
286 * test/glib/run-test.sh: Refactor to invoke
287 run-with-tmp-session-bus.sh.
289 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
290 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
291 macros instead of hardcoding.
293 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
295 2005-03-11 Joe Shaw <joeshaw@novell.com>
297 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
298 this unref; it doesn't match up evenly in some codepaths.
299 (_dbus_connection_block_pending_call): Unref at every exitpoint;
300 this evenly matches with the ref near the top of this function.
302 2005-03-09 Joe Shaw <joeshaw@novell.com>
304 * dbus/dbus-object-tree.c
305 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
306 and we try to unregister a path that's not registered, still go
307 through the process of unlocking and don't just return.
309 2005-03-09 Colin Walters <walters@verbum.org>
311 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
312 to this are generated for client-side wrappers. Invokes a
313 D-BUS method and returns reply values.
315 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
316 function; writes signature string for argument direction.
317 (write_args_for_direction): Change to pass input values directly
318 instead of via address, and fix indentation.
319 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
320 make generated wrappers inlineable.
322 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
323 note about using dbus_type_is_fixed.
325 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
326 dbus/dbus-signature.c as dbus_type_is_fixed.
330 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
331 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
333 * dbus/dbus-signature.h: Prototype.
335 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
338 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
339 appropriate instead of just freeing it.
340 (main): Free returned strings using g_free.
342 * test/glib/Makefile.am (test-service-glib-glue.h)
343 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
345 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
346 simply maps a simple D-BUS type to GType.
347 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
349 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
350 initialize the value with it.
351 (dbus_gvalue_binding_type_from_type): Unused, delete.
352 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
353 various types instead of unmarshalling to value data directly.
354 Remove can_convert boolean.
355 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
356 returning directly instead of using can_convert boolean.
357 (dbus_gvalue_store): New function; not related to D-BUS per-se.
358 Stores a GValue in a pointer to a value of its corresponding C
361 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
362 add dbus_gvalue_store.
364 2005-03-08 Joe Shaw <joeshaw@novell.com>
366 Fix a bunch of lifecycle and memory management problems
367 in the mono bindings.
369 * mono/Arguments.cs (Arguments): Implement IDisposable
371 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
372 strictly a static class.
374 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
375 delegates into this file.
376 (Connection): Implement IDisposable.
377 (Dispose): Disconnect the connection and set the raw connection
378 pointer to IntPtr.Zero.
379 (~Connection): Call Dispose().
380 (RegisterObjectPath): Added. Manages the registration of object
381 paths so we can cleanly disconnect them at dispose/finalize time.
382 (UnregisterObjectPath): Ditto.
383 (set_RawConnection): Unregister all of the object paths when
384 changing the underlying DBusConnection. Add them back onto the
385 new connection, if any.
387 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
388 more unmanaged resources anymore, so it's not necessary. Move all
389 the DBusObjectPathVTable stuff out of here.
390 (Handler): Save references to our delegates so that they don't get
391 finalized. Call Connection.RegisterObjectPath() instead of
392 dbus_connection_register_object_path() directly.
393 (Message_Called): Dispose the message after we're finished with
396 * mono/Message.cs (Message): Implement IDisposable.
397 (Dispose): Dispose the Arguments, and set the RawMessage to
399 (SendWithReplyAndBlock): We own the ref to the reply that comes
400 back from dbus_connection_send_with_reply_and_block() so add a
401 comment about that and unref it after we've constructed a managed
402 MethodReturn class around it. Fixes a big, big leak.
404 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
406 (BuildSignalHandler): After we've sent the Signal message, dispose
408 (BuildMethod): Dispose of the method call and reply messages after
409 we've sent the message and extracted the data we want from the
412 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
414 (Service_FilterCalled): Dispose of the message after we're
417 2005-03-08 Joe Shaw <joeshaw@novell.com>
419 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
420 After we attach our pending call to the connection, unref
423 * mono/Connection.cs (set_RawConnection): Disconnect our
424 filter and match callbacks from the old connection and
425 reconnect them to the new connection, if any.
427 * mono/DBusType/Array.cs: "Code" is a static member, so
428 don't use "this" to refer to it. Fix for stricter checking
431 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
432 object path that we pass into unmanaged code.
434 * mono/DBusType/String.cs (Append): Don't leak the string
435 that we pass into unmanged code.
437 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
438 * NEWS: Update for 0.31
440 * configure.in: Release 0.31
441 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
443 * qt/Makefile.am: fixed build
445 * dbus/Makefile.am: soname bump for libdbus
447 * glib/Makefile.am: soname bump for libdbus-glib
449 2005-03-05 Havoc Pennington <hp@redhat.com>
451 * dbus/dbus-sysdeps.c:
452 (pseudorandom_generate_random_bytes_buffer): fix to have no return
454 (_dbus_generate_random_bytes_buffer): fix return value
456 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
457 checks actually work, from Tom Parker <fdo@tevp.net>
459 2005-03-01 Colin Walters <walters@verbum.org>
461 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
462 functions copied from dbus-glib-tool.c.
463 (main): Convert lots of error code to use them.
464 Also add some testing for introspection bits.
466 2005-03-01 Colin Walters <walters@verbum.org>
468 * doc/TODO: Remove introspection signature TODO.
470 2005-02-27 Colin Walters <walters@verbum.org>
472 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
473 Change return value to const char * instead of int so we can do
475 (struct PropertyInfo, struct ArgInfo): Store char *.
476 (property_info_new, arg_info_new): Update parameters, strdup.
477 (property_info_unref, arg_info_unref): Free.
479 * glib/dbus-gidl.h: Update prototypes.
481 * glib/dbus-gparser.c (basic_type_from_string): Delete.
482 (validate_signature): New function, just validates signature and
484 (parse_property, parse_arg): Invoke validate_signature. Store
485 signature instead of just type code.
487 * glib/dbus-gvalue.c (base_type_from_signature): New utility
488 function to return a primary type for a signature, dropping
489 information about types in container types.
490 (dbus_gvalue_genmarshal_name_from_type)
491 (dbus_gvalue_binding_type_from_type)
492 (dbus_gvalue_ctype_from_type): Update to take full signature
493 instead of type code.
494 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
496 * glib/dbus-gvalue.h: Update prototypes for above.
498 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
499 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
500 (introspect_properties, introspect_signals, write_interface):
501 Update to handle signatures, and remove usage of
502 _dbus_gutils_type_to_string.
503 (handle_introspect): Print out type codes instead of e.g. "string"
504 in hardcoded introspection XML; also use x_AS_STRING constants
505 instead of hardcoding in string.
507 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
508 to string. Remove usage of _dbus_gutils_type_to_string.
510 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
512 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
515 * glib/dbus-binding-tool-glib.c (compute_marshaller)
516 (compute_marshaller_name, generate_glue): Handle signature change
518 (write_formal_parameters, write_args_for_direction): Ditto, and
521 * tools/dbus-tree-view.c (type_to_string): Delete.
522 (info_set_func_text): Update to print full signatures.
524 * test/glib/test-service-glib.xml: Change types to new
525 introspection format.
527 2005-02-26 Havoc Pennington <hp@redhat.com>
529 * doc/TODO: remove the "guid" item
531 * test/glib/test-profile.c (no_bus_thread_func): use open_private
532 (with_bus_thread_func): use open_private
534 * dbus/dbus-connection.c (dbus_connection_open_private): new
535 function that works like the old dbus_connection_open()
536 (dbus_connection_open): now returns an existing connection if
539 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
540 through the GUID to the transport
542 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
543 GUID in hex-encoded form.
545 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
546 pass GUID argument in to the transport
548 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
551 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
553 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
555 2005-02-25 Havoc Pennington <hp@redhat.com>
557 * doc/dbus-specification.xml: document the GUID thing
559 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
560 globally unique ID for the server, and put a "guid=hexencoded"
563 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
565 * dbus/dbus-message.c: ditto
567 * dbus/dbus-dataslot.c: ditto
569 * dbus/dbus-list.c: ditto
571 * dbus/dbus-internals.h: wait, just include
572 dbus-threads-internal.h here
574 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
577 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
579 2005-02-24 Colin Walters <walters@verbum.org>
581 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
583 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
585 * glib/Makefile.am: added dbus-gobject.h to sources list
586 so distcheck doesn't fail
588 2005-02-24 Havoc Pennington <hp@redhat.com>
590 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
591 you must disconnect before unref, since locking and other things
592 are screwed up otherwise. Fix assorted other locking stuff.
594 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
597 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
598 into a private header and don't export from the library
600 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
602 2005-02-24 Colin Walters <walters@verbum.org>
604 * dbus/dbus-signature.c: New file; implements various functions
605 related to type signatures. Includes an interator for parsing,
606 validation functions.
607 (dbus_type_is_basic): Moved here from
608 dbus-marshal-basic.c:_dbus_type_is_basic.
609 (dbus_type_is_container): Moved here from
610 dbus-marshal-basic.c:_dbus_type_is_container.
612 All callers of _dbus_type_is_container and _dbus_type_is_basic
613 updated, and include dbus-signature.h.
615 * dbus/dbus-signature.h: New file; prototypes for the above.
617 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
620 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
621 function factored out of _dbus_first_type_in_signature.
622 (_dbus_first_type_in_signature_c_str): New function; returns first
623 type code for a type signature character.
625 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
626 handle function moves.
628 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
630 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
631 function; skips to next complete type in type signature.
632 Implemented using previous skip_one_complete_type. Now
633 skip_one_complete_type just delegates to
634 _dbus_type_signature_next.
636 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
638 (_dbus_type_is_container): Ditto.
640 * doc/dbus-specification.xml: Update introspection sample to
641 use real type signatures.
643 * dbus/dbus-test.h: Prototype signature test.
645 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
648 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
650 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
652 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
653 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
655 2005-02-21 Colin Walters <walters@verbum.org>
657 * dbus/dbus-test-main.c (main): Take optional specific test
660 * dbus/dbus-test.c (run_test): New function, runs a test function
661 with no data directory.
662 (run_data_test): Like above, but takes data directory.
663 (dbus_internal_do_not_use_run_tests): Take
664 specific test argument. Replace lots of cut n' paste code
665 with run_test and run_data_test.
667 * dbus/dbus-test.h: Update prototype for
668 dbus_internal_do_not_use_run_tests.
670 2005-02-20 Havoc Pennington <hp@redhat.com>
672 Fix bugs reported by Daniel P. Berrange
674 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
675 (protected_change_watch): new function
676 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
677 (_dbus_server_add_watch): change to work like the
678 dbus-connection.c equivalents; like those, probably kind of
679 busted, but should at least mostly work for now
680 (dbus_server_disconnect): drop the lock if we were already
681 disconnected, patch from Daniel P. Berrange
683 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
684 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
687 * doc/TODO: todo about unscrewing this mess
689 2005-02-19 Colin Walters <walters@verbum.org>
691 * glib/dbus-binding-tool-glib.c
692 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
694 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
695 as errno.h and sys/stat.h.
696 (lose): New function, prints error with
698 (lose_gerror): Similar, but takes GError for message.
699 (main): Add --output argument to specify output file to write to,
700 instead of always printing to stdout. In this mode, determine
701 timestamps on source files to see whether any are newer than the
702 target file. If not, exit. Also convert a number of error
703 messages to use lose (since it's shorter), and switch to using
704 g_io_channel_shutdown.
706 2005-02-19 Havoc Pennington <hp@redhat.com>
708 * glib/dbus-gobject.c
709 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
711 * glib/dbus-glib.c: fix doxygen warnings
713 * glib/dbus-gparser.c (parse_annotation): error if an annotation
716 2005-02-17 Colin Walters <walters@verbum.org>
718 * glib/dbus-gobject.h: Don't export
719 _dbus_glib_marshal_dbus_message_to_gvalue_array.
721 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
722 (invoke_object_method): Handle it.
724 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
727 2005-02-17 Colin Walters <walters@verbum.org>
729 * bus/.cvsignore, doc/.cvsignore
730 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
733 2005-02-17 Colin Walters <walters@verbum.org>
735 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
736 Rename to DBUS_SERVICE_DBUS.
737 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
738 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
739 Change the value from "org.freedesktop.Local"
740 to "org.freedesktop.DBus.Local".
741 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
742 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
743 DBUS_INTERFACE_INTROSPECTABLE.
744 Change the value from "org.freedesktop.Introspectable"
745 to "org.freedesktop.DBus.Introspectable".
746 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
747 DBUS_INTERFACE_PROPERTIES.
748 Change the value from "org.freedesktop.Properties"
749 to "org.freedesktop.DBus.Properties".
750 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
752 Change the value from "org.freedesktop.Peer"
753 to "org.freedesktop.DBus.Peer".
754 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
755 DBUS_INTERFACE_LOCAL.
756 Change the value from "org.freedesktop.Local"
757 to "org.freedesktop.DBus.Local".
759 All other users of those constants have been changed.
761 * bus/driver.c (bus_driver_handle_introspect): Use constants.
763 * glib/dbus-gobject.c (handle_introspect): Use constants.
765 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
767 2005-02-17 Colin Walters <walters@verbum.org>
769 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
770 (parse_node, parse_interface, parse_method, parse_signal)
771 (parse_property, parse_annotation): Lose if we're currently in an
773 (parse_annotation): New function.
774 (parser_start_element, parser_end_element): Handle annotation.
775 (parse_method, parse_interface): Remove support for c_name attribute,
776 switch to annotations.
778 * glib/dbus-gidl.h (interface_info_get_binding_names)
779 (method_info_get_binding_names)
780 (interface_info_get_binding_name, method_info_get_binding_name)
781 (interface_info_set_binding_name, method_info_set_binding_name):
783 (interface_info_get_annotations, method_info_get_annotations)
784 (interface_info_get_annotation, method_info_get_annotation)
785 (interface_info_add_annotation, method_info_add_annotation):
788 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
790 (struct MethodInfo): Ditto.
791 Straightfoward conversion of binding methods into annotation methods
794 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
796 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
798 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
799 Use new annotation API.
801 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
804 * doc/dbus-specification.xml: Discuss introspection annotations,
805 include list of well-known annotations.
807 * test/glib/test-service-glib.xml: Make validate against new DTD.
809 2005-02-17 Colin Walters <walters@verbum.org>
811 This patch is based on initial work from
812 Paul Kuliniewicz <kuliniew@purdue.edu>.
814 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
815 initialization of GValue from dbus type to here.
816 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
817 for the "glib-genmarshal" program from a DBus type.
818 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
819 into the C name for it we use in the glib bindings.
820 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
821 glib C type (not GValue).
822 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
824 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
827 * glib/dbus-gutils.h: Prototype it.
829 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
830 (marshal_dbus_message_to_g_marshaller): Use new shared function
831 dbus_glib_marshal_dbus_message_to_gvalue_array.
833 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
834 Will be changed once we have annotations.
836 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
837 GStaticRWLock. Callers updated.
838 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
839 (string_table_next): New function for iterating over zero-terminated
841 (string_table_lookup): New function; retrieves specific entry in
843 (get_method_data): New function; look up method data in object data chunk.
844 (object_error_domain_prefix_from_object_info)
845 (object_error_code_from_object_info): New functions, but not implemented yet.
846 (method_interface_from_object_info): New function; retrieve interface name.
847 (method_name_from_object_info): New function; retrieve method name.
848 (method_arg_info_from_object_info): New function; retrieve argument data.
849 (arg_iterate): New function; iterates over serialized argument data.
850 (method_dir_signature_from_object_info): New function; returns a
851 GString holding type signature for arguments for just one
852 direction (input or output).
853 (method_input_signature_from_object_info)
854 (method_output_signature_from_object_info): New functions.
855 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
856 converts dbus message arguments into a GValue array. Used for both
857 signal handling and method invocation.
858 (struct DBusGlibWriteIterfaceData): New utility structure.
859 (write_interface): New function; generate introspection XML for
861 (introspect_interfaces): New function; gathers all interface->methods,
862 generates introspection XML for them.
863 (handle_introspect): Invoke introspect_interfaces.
864 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
865 (lookup_object_and_method): New function; examines an incoming message
866 and attempts to match it up (via interface, method name, and argument
867 signature) with a known object and method.
868 (gerror_domaincode_to_dbus_error_name): New function; converts a
869 GError domain and code into a DBus error name. Needs GError data
870 added to object introspection to work well.
871 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
873 (invoke_object_method): New function to invoke an object method
874 looked up via lookup_object_and_method. Parses the incoming
875 message, turns it into a GValue array, then invokes the marshaller
876 specified in the DBusGMethodInfo. Creates a new message with
877 either return values or error message as appropriate.
878 (gobject_message_function): Invoke lookup_object_and_method and
879 invoke_object_method.
881 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
882 (enum DBusBindingOutputMode): New enum for binding output modes.
883 (pretty_print): Print binding names.
884 (dbus_binding_tool_error_quark): GError bits.
886 (main): Create GIOChannel for output. Parse new --mode argument,
887 possible values are "pretty-print", "glib-server", "glib-client".
888 Use mode to invoke appropriate function.
890 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
892 * glib/dbus-glib-tool.h: New header, just includes GError bits
895 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
896 maps binding style to name.
897 (struct MethodInfo): Ditto.
898 (get_hash_keys, get_hash_key): Utility function, returns keys for
900 (interface_info_new, method_info_new): Initialize bindings.
901 (interface_info_unref, method_info_unref): Destroy bindings.
902 (method_info_get_binding_names, method_info_get_binding_name)
903 (interface_info_get_binding_names, interface_info_get_binding_name):
904 Functions for retrieving binding names.
905 (method_info_set_binding_name, interface_info_set_binding_name):
906 Functions for setting binding names.
908 * glib/dbus-binding-tool-glib.h: New file, has prototypes
909 for glib binding generation.
911 * glib/dbus-binding-tool-glib.c: New file, implements server-side
912 and client-side glib glue generation.
914 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
915 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
918 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
919 of using GClosureMarshal directly.
920 (struct DBusGObjectInfo): Add n_infos member.
922 * test/glib/test-service-glib.xml: New file; contains introspection data
923 for MyTestObject used in test-service-glib.c.
925 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
926 (my_object_do_nothing, my_object_increment, my_object_throw_error)
927 (my_object_uppercase, my_object_many_args): New test methods.
928 (main): Use dbus_g_object_class_install_info to include generated object
931 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
932 as well as client-side bindings.
934 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
935 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
936 using both the dbus_gproxy stuff directly as well as the generated bindings.
938 2005-02-15 Havoc Pennington <hp@redhat.com>
940 * dbus/dbus-connection.c (dbus_connection_dispatch): always
941 complete a pending call, don't run filters first.
943 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
944 dbus_pending_call_steal_reply
946 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
947 _dbus_connection_block_pending_call
948 (dbus_pending_call_get_reply): change to steal_reply and return a
951 * dbus/dbus-connection.c
952 (dbus_connection_send_with_reply_and_block): port to work in terms
954 (_dbus_connection_block_pending_call): replace block_for_reply
957 2005-02-14 Havoc Pennington <hp@redhat.com>
959 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
960 properly handle looking up group information by name; fix
963 2005-02-13 Havoc Pennington <hp@redhat.com>
965 * dbus/dbus-connection.c (dbus_connection_return_message)
966 (dbus_connection_borrow_message): hold dispatch lock while message
968 (_dbus_connection_block_for_reply): hold dispatch lock while we
969 block for the reply, so nobody steals our reply
970 (dbus_connection_pop_message): hold the dispatch lock while we
973 2005-02-13 Havoc Pennington <hp@redhat.com>
975 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
976 (_dbus_connection_release_dispatch)
977 (_dbus_connection_acquire_io_path)
978 (_dbus_connection_release_io_path): make the mutex and condvar
979 control access to the "acquired" flag. Drop the connection lock
980 while waiting on the condvar. Hopefully these are baby steps in
981 roughly the right direction.
983 2005-02-13 Havoc Pennington <hp@redhat.com>
985 * dbus/dbus-connection.c: use separate mutexes for the condition
986 variables; this is some kind of baseline for sanity, but the
987 condition variables still aren't used correctly afaict
989 2005-02-13 Havoc Pennington <hp@redhat.com>
991 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
994 * dbus/dbus-connection.c
995 (_dbus_connection_detach_pending_call_unlocked): add this
997 Initial semi-correct pass through to fix thread locking; there are
998 still some issues with the condition variable paths I'm pretty
1001 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
1004 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
1005 rename to add _unlocked
1006 (struct DBusConnection): move "dispatch_acquired" and
1007 "io_path_acquired" to use only one bit each.
1008 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
1009 (dbus_connection_set_watch_functions): hacky fix to reentrancy
1010 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
1011 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
1012 (_dbus_connection_remove_timeout)
1013 (_dbus_connection_toggle_timeout): drop lock when calling out to
1014 user functions; done in a hacky/bad way.
1015 (_dbus_connection_send_and_unlock): add a missing unlock
1016 (_dbus_connection_block_for_reply): add a missing unlock
1018 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1019 drop lock in a hacky probably unsafe way to call out to user
1022 2005-02-12 Havoc Pennington <hp@redhat.com>
1024 * tools/dbus-tree-view.c (info_set_func_text): display more
1027 * bus/driver.c (bus_driver_handle_list_services): list the bus
1030 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
1032 * glib/dbus-gidl.c (signal_info_get_n_args): new function
1033 (method_info_get_n_args): new function
1035 2005-02-12 Havoc Pennington <hp@redhat.com>
1037 * bus/driver.c (bus_driver_handle_introspect): add introspection
1040 2005-02-12 Havoc Pennington <hp@redhat.com>
1042 * bus/driver.c: put the signature of each bus driver method in the
1043 table of handlers and check it on incoming calls; this isn't
1044 really useful, but going to add introspect support in a minute.
1046 2005-02-11 Joe Shaw <joeshaw@novell.com>
1048 * mono/Connection.cs: The unpredictability of finalizers in mono
1049 prevents us from deterministically disconnecting the filters from
1050 the Service class's finalizer, so move tracking of filters and
1051 matches here. Add API for that.
1053 * mono/Service.cs: Remove the code, add code which calls the
1054 methods now on the Connection class.
1056 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
1058 * python/dbus.py (class Sender): added to support dbus signals better
1059 (Bus::add_signal_receiver): added expand_args parameter which defaults
1060 to True. When expand args is True the signal handler will pass the
1061 message arguments as parameters to the signal handler. If False
1062 revert to previous behavior where the signal handler must get the
1063 argument list from the message. This is to help port applications
1064 like HAL that have a tendancy to send variable length argument lists.
1065 self._match_rule_to_receivers is now a dict of dicts.
1066 (Bus::remove_signal_receiver): pop handler off the dict intead of
1067 removing it from a list
1068 (Bus::_signal_func): change signal handlers so that interface,
1069 signal_name, service, path and message are packed into a Sender
1070 object and that is passed to the handler. If expand_args is True
1071 extract the args list from the message and append it to the parameter
1074 * python/dbus_bindings.pyx.in (class Signature): added to support
1076 (MessageIter::__init__): changed iteration limit to match D-BUS
1077 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
1078 STRUCT and VARIENT type support
1079 (MessageIter::python_value_to_dbus_sig): made recursive to support
1081 (MessageIter::append*): added Signature, dict, tuple
1084 * python/examples/example-client.py: added examples of getting tuples
1087 * python/examples/example-service.py: added examples of sending tuples
1090 * python/examples/example-signal-recipient.py: Fixed to handle new
1091 signal callback format
1093 2005-02-10 Havoc Pennington <hp@redhat.com>
1095 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
1096 (call dbus_g_proxy_add_signal)
1098 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
1100 (_dbus_server_new_for_domain_socket): escape the path
1102 * dbus/dbus-address.c (dbus_address_escape_value): new
1103 (dbus_address_unescape_value): new
1104 (dbus_parse_address): unescape values
1106 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
1108 * doc/dbus-specification.xml: explain how to escape values in
1111 2005-02-10 Havoc Pennington <hp@redhat.com>
1113 * dbus/dbus-message-factory.c (generate_special): modify test to
1114 avoid using a non-basic dict key
1116 * dbus/dbus-marshal-validate-util.c: add test for the below
1118 * doc/dbus-specification.xml: require that dict keys are a basic
1121 * dbus/dbus-marshal-validate.c
1122 (_dbus_validate_signature_with_reason): require that dict key is a
1125 2005-02-10 Havoc Pennington <hp@redhat.com>
1127 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
1128 change to be _and_unlock instead of _unlocked
1130 * dbus/dbus-connection.c
1131 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
1132 have no_update so we can find this bug quickly in future
1134 2005-02-10 Havoc Pennington <hp@redhat.com>
1136 * dbus/dbus-message-util.c (verify_test_message): tests for string
1139 * dbus/dbus-message.c (dbus_message_append_args_valist): add
1140 support for arrays of string/signature/path
1142 2005-02-10 Joe Shaw <joeshaw@novell.com>
1144 * dbus/dbus-connection.c
1145 (_dbus_connection_queue_received_message_link,
1146 _dbus_connection_message_sent): Add the path to
1148 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
1149 _dbus_connection_send_preallocated_unlocked(), updated the
1150 dispatch status, and unlocks. Fixes a bug where certain
1151 situations (like a broken pipe) could cause a Disconnect message
1152 to not be sent, tricking the bus into thinking a service was still
1153 there when the process had quit.
1154 (_dbus_connection_send_preallocated): Call
1155 _dbus_connection_send_preallocated_and_unlock().
1156 (_dbus_connection_send_and_unlock): Added. Calls
1157 _dbus_connection_send_preallocated_and_unlock().
1158 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
1159 (dbus_connection_send_with_reply): Update the dispatch status and
1162 * mono/Service.cs (~Service): Added. Removes the filter so that
1163 we don't get unmanaged code calling back into a GCed delegate.
1164 (RemoveFilter); Added.
1166 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
1168 * dbus/dbus-message.c (dbus_message_iter_open_container):
1169 - Removed check for iterator type being an array because
1170 get_arg_type does not work with writer iterators
1171 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
1173 2005-02-07 Havoc Pennington <hp@redhat.com>
1175 * doc/dbus-specification.xml: some more language cleanups; add
1176 stuff about how to deal with invalid protocol and extension
1177 points; add _ to allowed chars in auth commands; add EXTENSION_
1180 2005-02-06 Havoc Pennington <hp@redhat.com>
1182 * s/expected/required/ in a couple places for clarity
1184 2005-02-07 Colin Walters <walters@verbum.org>
1186 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
1187 sender or proposed_recipient.
1189 2005-02-06 Havoc Pennington <hp@redhat.com>
1191 * dbus/dbus-message-factory.c (generate_special): more tests
1193 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
1194 array length that exceeds the maximum
1196 2005-02-05 Havoc Pennington <hp@redhat.com>
1198 * dbus/dbus-message-factory.c (generate_special): more test cases,
1201 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
1202 reason why a signature was invalid
1204 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
1205 skip the length of the string before we look at it in validation
1207 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
1210 * dbus/dbus-message.c (_dbus_message_loader_new): default
1211 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
1213 2005-02-05 Havoc Pennington <hp@redhat.com>
1215 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
1216 if the signature of a variant was empty
1217 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
1218 struct with no element type)
1220 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
1221 mangled messages to break things
1223 2005-02-04 Havoc Pennington <hp@redhat.com>
1225 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
1226 g_quark_try_string() so it actually can return 0
1227 (dbus_g_proxy_connect_signal): ditto
1229 2005-02-04 Havoc Pennington <hp@redhat.com>
1231 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
1233 (tristring_from_message): assert cleanly on null path/interface
1234 (should not be possible though I decided later)
1235 (dbus_g_proxy_dispose): move proxy manager unregistration here
1236 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
1237 g_return_if_fail() checks
1239 2005-02-04 Havoc Pennington <hp@redhat.com>
1241 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
1243 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
1244 (with some minor changes)
1246 * doc/dbus-specification.xml: add deprecated attribute to
1247 introspection format
1249 2005-01-31 Havoc Pennington <hp@redhat.com>
1251 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
1252 think it's sort of right
1254 2005-01-30 Havoc Pennington <hp@redhat.com>
1256 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
1258 2005-01-30 Havoc Pennington <hp@redhat.com>
1260 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
1262 * autogen.sh: change to autotools 1.9
1264 * glib/dbus-gproxy.c: completely change how signals work
1265 (dbus_g_proxy_add_signal): new function to specify signature of a
1267 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
1268 and g_warning if the incoming message has the wrong signature.
1270 2005-01-30 Havoc Pennington <hp@redhat.com>
1272 * tools/dbus-names-model.c (have_names_notify): fix this
1274 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
1275 up the string array handling a bit
1277 2005-01-30 Havoc Pennington <hp@redhat.com>
1279 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
1280 (dbus_g_pending_call_cancel): new function
1282 * dbus/dbus-glib.h: move GType decls for connection/message here;
1283 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
1284 here, just kind of rationalizing how we handle all that
1286 * tools/dbus-names-model.c: new file for a tree model listing the
1289 * tools/dbus-tree-view.c (model_new): use proper typing on the
1292 2005-01-30 Havoc Pennington <hp@redhat.com>
1294 * glib/dbus-gmain.c: add a custom GSource back that just checks
1295 whether the message queue has anything in it; otherwise, there are
1296 cases where we won't see messages in the queue since there was no
1297 IO visible to the glib main loop
1299 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
1300 increase default message timeout to 25 seconds
1302 2005-01-30 Havoc Pennington <hp@redhat.com>
1304 * test/glib/test-profile.c (no_bus_stop_server): remove the
1305 warning about the g_warning that I just fixed
1307 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
1308 custom source, seems to be a lot easier to understand and work
1311 2005-01-30 Havoc Pennington <hp@redhat.com>
1313 I think this main loop thing is conceptually broken, but here are
1314 some band aids. I'll maybe rewrite it in a minute.
1316 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
1317 custom GSource, so don't pass it in; confusing
1318 (gsource_server_finalize, gsource_connection_finalize): add
1319 finalize handlers that remove all the watches.
1321 2005-01-30 Havoc Pennington <hp@redhat.com>
1323 * glib/dbus-gobject.c (introspect_properties): fix the XML
1326 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
1327 which effectively detects the use of freed messages
1329 * glib/dbus-gobject.c (handle_introspect): modify and return the
1330 reply message instead of the incoming message
1332 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
1333 gee, maybe it should SEND THE XML instead of just making a string
1334 and freeing it again ;-)
1336 * tools/dbus-print-message.c (print_message): improve printing of
1339 * configure.in: add debug-glib.service to the output
1341 2005-01-30 Havoc Pennington <hp@redhat.com>
1343 dbus-viewer introspected and displayed the bus driver
1345 * dbus/dbus-object-tree.c
1346 (object_tree_test_iteration): add tests for a handler registered on "/"
1348 * dbus/dbus-object-tree.c
1349 (_dbus_decompose_path): fix to handle path "/" properly
1350 (run_decompose_tests): add tests for path decomposition
1352 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
1355 * glib/dbus-gobject.c (handle_introspect): fix quotes
1357 * test/glib/run-test.sh: support launching the bus, then running
1360 * test/glib/test-service-glib.c (main): put in a trivial gobject
1361 subclass and register it on the connection
1363 * bus/driver.c (bus_driver_handle_introspect): implement
1364 introspection of the bus driver service
1366 * dbus/dbus-protocol.h: add #defines for the XML namespace,
1367 identifiers, doctype decl
1369 * bus/driver.c (bus_driver_handle_get_service_owner): handle
1370 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
1371 returning the service unchanged.
1372 (bus_driver_handle_message): remove old check for reply_serial in
1373 method calls, now the message type deals with that
1374 (bus_driver_handle_message): handle NULL interface
1376 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
1378 * glib/dbus-gloader-expat.c (description_load_from_string): allow
1381 * tools/dbus-viewer.c: add support for introspecting a service on
1384 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
1385 (dbus_g_pending_call_unref): add
1387 2005-01-29 Havoc Pennington <hp@redhat.com>
1389 * tools/dbus-tree-view.c: add support for displaying properties.
1390 (run dbus-viewer with an introspect xml file as arg, then resize
1391 the window so the tree elements show up, not sure what that is)
1393 * glib/dbus-gobject.c (handle_introspect): return
1394 org.freedesktop.Properties and org.freedesktop.Introspectable
1395 interfaces when we are introspected.
1397 * doc/dbus-specification.xml: allow empty interface name when
1400 2005-01-29 Havoc Pennington <hp@redhat.com>
1402 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
1403 though it uses glib, it could be extended for any binding in
1406 * glib/dbus-gobject.c (gobject_message_function): change to the
1407 new way properties work
1409 * dbus/dbus-protocol.h: add the new interfaces
1411 * doc/dbus-specification.xml: document the introspection format,
1412 Introspectable interface, and add an org.freedesktop.Properties
1415 * glib/dbus-gparser.c: add support for a <property> element
1417 * glib/dbus-gidl.c: add PropertyInfo
1419 * glib/dbus-gobject.c (handle_introspect): put the outermost
1420 <node> outside the signal and property descriptions.
1421 (introspect_properties): export properties as <property> rather
1422 than as method calls
1424 2005-01-28 Havoc Pennington <hp@redhat.com>
1426 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
1427 related to authentication protocol
1429 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
1431 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
1432 - BUS_ACTIVATION -> BUS_STARTER
1433 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
1434 - class MessageIter (__init__): Added recursion checking
1435 so we throw a nice error instead of just disconnecting from the
1437 (get): Added arg_type parameter for recursion.
1438 Removed the nil type
1439 Added signiture type placeholder (not implemented)
1440 Added struct type placeholder (not implemented)
1441 Added varient type placeholder (not implemented)
1442 Commented out dict type for now
1443 (get_element_type): renamed from get_array_type
1444 (get_*): changed to use the dbus_message_iter_get_basic API
1445 (get_*_array): removed in favor of recursive get_array method
1446 (get_array): new recursive method which calls get to marshal
1447 the elements of the array
1448 (value_to_dbus_sig): New method returns the corrasponding
1449 dbus signiture to a python value
1450 (append): Comment out dict handling for now
1451 Handle lists with the new recursive API
1452 Comment out None handling for now
1453 (append_nil): removed
1454 (append_*): changed to use dbus_message_iter_append_basic API
1455 (append_*_array): removed in favor of recursive append_array
1457 (__str__): Make it easier to print out recursive iterators
1459 - class Message (__str__): moved type inspection to the
1460 MessageIter class' __str__ method
1461 (get_iter): Added an append parameter wich defaults to False
1462 If True use the new API's to create an append iterator
1464 * python/dbus.py: Update to use new bindings API
1465 - TYPE_ACTIVATION -> TYPE_STARTER
1466 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
1467 - class ActivationBus -> class StarterBus
1468 - class RemoteObject (__call__): get an append iterator
1469 - (_dispatch_dbus_method_call): get an append iterator
1470 - class Object (emit_signal): get an append iterator
1472 * python/examples/: Fixed up the examples to work with the new API
1474 2005-01-28 Joe Shaw <joeshaw@novell.com>
1476 * configure.in: Bump version up to 0.30.
1478 * HACKING: Add a release item to bump the version number up after
1481 2005-01-28 Havoc Pennington <hp@redhat.com>
1483 * doc/dbus-specification.xml: update to describe 16-bit types and
1486 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
1489 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
1492 * dbus/dbus-marshal-recursive.c: implement
1494 2005-01-27 Havoc Pennington <hp@redhat.com>
1496 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
1498 * configure.in: find the right type for 16 and 32 bit ints as well
1501 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
1502 the 16-bit types so people don't have to stuff them in 32-bit or
1505 2005-01-27 Havoc Pennington <hp@redhat.com>
1507 * dbus/dbus-message.c: byteswap the message if you init an
1508 iterator to read/write from it
1510 * dbus/dbus-marshal-byteswap.c: new file implementing
1511 _dbus_marshal_byteswap()
1513 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
1515 2005-01-26 Havoc Pennington <hp@redhat.com>
1517 * dbus/dbus-marshal-validate-util.c: break this out (and fix
1518 build, apparently - nobody noticed?)
1520 2005-01-26 Havoc Pennington <hp@redhat.com>
1522 * dbus/dbus-marshal-recursive.h: remove todo comment
1524 2005-01-25 Joe Shaw <joeshaw@novell.com>
1526 * Land the mono binding changes to conform to the new APIs.
1528 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
1529 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
1531 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
1532 type code as a string.
1533 (InitAppending): Rename dbus_message_append_iter_init() to
1534 dbus_message_iter_init_append().
1536 * mono/BusDriver.cs: Rename ServiceEventHandler to
1537 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
1538 Rename ServiceOwnerChanged to NameOwnerChanged.
1540 * mono/Connection.cs: Rename BaseService to UniqueName, and the
1543 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
1545 * mono/Service.cs: Rename Exists to HasOwner, internally rename
1546 dbus_bus_acquire_service() to dbus_bus_request_name().
1548 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
1549 of Type.UnderlyingSystemType to get the correct element type for
1551 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
1552 dbus_message_get_{element|arg}_type() instead of
1553 dbus_message_iter_init_array_iterator().
1554 (Append): Replace dbus_message_iter_append_array() with
1555 dbus_message_iter_open_container() and
1556 dbus_message_iter_close_container().
1558 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
1559 types have been removed.
1561 * mono/DBusType/*.cs: Replace calls of
1562 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
1563 but specify the type in the DllImport extern declaration. Ditto
1564 for dbus_message_iter_append_[type]() ->
1565 dbus_message_iter_append_basic().
1567 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
1568 NameOwnerChangedHandler.
1570 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
1572 * python/dbus_bindings.pyx.in: Rename of methods and bindings
1573 - get_base_service -> get_unique_name
1574 - bus_get_base_service -> bus_get_unique_name
1575 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
1576 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
1577 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
1578 - bus_activate_service -> bus_start_service_by_name
1579 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
1580 - bus_acquire_service -> bus_request_name
1581 - dbus_bus_acquire_service -> dbus_bus_request_name
1582 - bus_service_exists -> bus_name_has_owner
1583 - dbus_bus_service_exists -> dbus_bus_name_has_owner
1585 * python/dbus.py: Rename of methods
1586 - activate_service -> start_service_by_name
1587 - bus_acquire_service -> bus_request_name
1588 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
1589 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
1592 2005-01-24 Joe Shaw <joeshaw@novell.com>
1594 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
1595 signature for the method that can't be found.
1597 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
1598 the message has any arguments, we need to call
1599 _dbus_type_reader_get_current_type(), not
1600 _dbus_type_reader_has_next().
1602 2005-01-24 Havoc Pennington <hp@redhat.com>
1604 * dbus/dbus-message-factory.c: more testing of message validation
1606 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
1609 2005-01-23 Havoc Pennington <hp@redhat.com>
1611 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
1612 get this all working, not many tests in the framework yet though
1614 2005-01-22 Havoc Pennington <hp@redhat.com>
1616 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
1617 tutorial, based on work from David Wheeler.
1619 2005-01-21 Havoc Pennington <hp@redhat.com>
1621 * dbus/dbus-bus.c: add more return_if_fail checks
1623 * dbus/dbus-message.c (load_message): have the "no validation"
1624 mode (have to edit the code to toggle the mode for now though)
1626 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
1627 skips all validation; I want to use this at least for benchmark
1628 baseline, I'm not sure if it should be a publicly-available switch.
1630 2005-01-21 Havoc Pennington <hp@redhat.com>
1632 * glib/dbus-gmain.c: don't put the GLib bindings in the same
1633 toplevel doxygen group as the low-level API stuff
1635 * dbus/dbus.h: note that libdbus is the low-level API
1637 2005-01-20 Havoc Pennington <hp@redhat.com>
1639 * update-dbus-docs.sh: script to update docs on the web site, only
1640 works for me though. neener.
1642 2005-01-20 Havoc Pennington <hp@redhat.com>
1644 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
1645 code can reveal bugs in it
1647 2005-01-20 Havoc Pennington <hp@redhat.com>
1649 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
1650 select() version, patches from Tor Lillqvist
1652 2005-01-20 Havoc Pennington <hp@redhat.com>
1654 * doc/dbus-tutorial.xml: replace > with >
1656 * bus/services.c (bus_registry_acquire_service): validate the name
1657 and return a better error if it's no good.
1659 * doc/dbus-specification.xml: note NO_AUTO_START change
1661 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
1662 from AUTO_START, we're toggling the default
1664 * bus/dispatch.c: adapt the tests to change of auto-start default
1666 2005-01-18 Havoc Pennington <hp@redhat.com>
1668 * rename dbus-daemon-1 to dbus-daemon throughout
1670 2005-01-18 Havoc Pennington <hp@redhat.com>
1672 * Throughout, grand renaming to strip out the use of "service",
1673 just say "name" instead (or "bus name" when ambiguous). Did not
1674 change the internal code of the message bus itself, only the
1675 programmer-facing API and messages.
1677 * doc/dbus-specification.xml: further update the message bus section
1679 * bus/config-parser.c (all_are_equiv): fix bug using freed string
1682 2005-01-17 Havoc Pennington <hp@redhat.com>
1684 * dbus/dbus-types.h: remove 16-bit types since we don't use them
1687 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
1688 "invalid name character" not only non-ASCII
1690 * doc/dbus-specification.xml: further update spec, message bus
1691 parts are still out-of-date but the marshaling etc. stuff is now
1694 2005-01-17 Havoc Pennington <hp@redhat.com>
1696 * doc/dbus-specification.xml: partially update spec
1698 2005-01-17 Havoc Pennington <hp@redhat.com>
1700 * Throughout, align variant bodies according to the contained
1701 type, rather than always to 8. Should save a fair bit of space in
1704 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
1705 fix handling of case where p == end
1707 * doc/TODO: remove the dbus_bool_t item and variant alignment items
1709 2005-01-17 Havoc Pennington <hp@redhat.com>
1711 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
1713 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
1714 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
1715 are marshaling/unmarshaling a boolean.
1717 2005-01-16 Havoc Pennington <hp@redhat.com>
1719 This is about it on what can be disabled/deleted from libdbus
1720 easily, back below 150K anyhow. Deeper cuts are more work than
1721 just turning the code off as I've done here.
1723 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
1724 signed int convenience funcs
1726 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
1729 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
1730 things out of libdbus
1732 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
1734 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
1735 tests-enabled-only, though it should probably be deleted)
1737 * dbus/dbus-message-util.c: same stuff
1739 * dbus/dbus-auth-util.c: same stuff
1741 2005-01-16 Havoc Pennington <hp@redhat.com>
1743 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
1745 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
1746 way for stripping down dbus-userdb.c stuff included in libdbus.
1747 Rename _dbus_parse_uid for consistency.
1749 2005-01-16 Havoc Pennington <hp@redhat.com>
1751 * dbus/dbus-internals.c (_dbus_real_assert): print the function
1752 name the assertion failed in
1754 * dbus/dbus-internals.h (_dbus_return_if_fail)
1755 (_dbus_return_val_if_fail): assert that the name of the function
1756 containing the check doesn't start with '_', since we only want to
1757 use checks on public functions
1759 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
1760 checks to assertions
1762 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
1763 change checks to asserts for private function
1765 * dbus/dbus-message.c (_dbus_message_set_serial): checks
1766 to asserts for private function
1768 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
1769 broken assertion that was breaking make check
1770 (_dbus_type_reader_array_is_empty): remove this rather than fix
1771 it, was only used in assertions
1773 2005-01-16 Havoc Pennington <hp@redhat.com>
1775 * test/unused-code-gc.py: hacky script to find code that's used
1776 only by the bus (not libdbus) or used only by tests or not used at
1777 all. It has some false alarms, but looks like we can clean up a
1778 lot of size from libdbus.
1780 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
1781 dbus/Makefile.am: initially move 10K of binary size out of libdbus
1783 2005-01-16 Havoc Pennington <hp@redhat.com>
1785 * Add and fix docs according to Doxygen warnings throughout
1788 * dbus/dbus-marshal-recursive.c
1789 (_dbus_type_reader_array_is_empty): change this to just call
1790 array_reader_get_array_len() and make it static
1792 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
1794 (dbus_message_iter_init_append): rename from append_iter_init
1796 * dbus/dbus-marshal-recursive.c
1797 (_dbus_type_reader_get_element_type): rename from
1798 _dbus_type_reader_get_array_type
1800 2005-01-15 Havoc Pennington <hp@redhat.com>
1802 * test/glib/test-profile.c (with_bus_server_filter): fix crash
1804 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
1805 when DBUS_DISABLE_ASSERT
1806 (_dbus_marshal_set_basic): be sure we align for the string length
1808 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
1811 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
1812 inline macro version
1813 (_dbus_string_set_byte): provide inline macro version
1815 2005-01-15 Havoc Pennington <hp@redhat.com>
1817 * Land the new message args API and type system.
1819 This patch is huge, but the public API change is not
1820 really large. The set of D-BUS types has changed somewhat,
1821 and the arg "getters" are more geared toward language bindings;
1822 they don't make a copy, etc.
1824 There are also some known issues. See these emails for details
1826 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
1827 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
1829 * dbus/dbus-marshal-*: all the new stuff
1831 * dbus/dbus-message.c: basically rewritten
1833 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
1834 freed blocks to be all non-nul bytes so using freed memory is less
1835 likely to work right
1837 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
1838 DBUS_FAIL_MALLOC=N environment variable, so you can do
1839 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
1840 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
1843 * qt/message.cpp: port to the new message args API
1844 (operator<<): use str.utf8() rather than str.unicode()
1845 (pretty sure this is right from the Qt docs?)
1847 * glib/dbus-gvalue.c: port to the new message args API
1849 * bus/dispatch.c, bus/driver.c: port to the new message args API
1851 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
1852 "locked" flag to TRUE and align_offset to 0; I guess we never
1853 looked at these anyhow, but seems cleaner.
1855 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
1856 move allocation padding macro to this header; use it to implement
1857 (_DBUS_STRING_STATIC): ability to declare a static string.
1859 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
1860 change to return TRUE if the interface is not set.
1862 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
1863 to dbus-marshal-validate.[hc]
1865 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
1868 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
1869 to dbus-marshal-*.[hc]
1871 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
1872 function here from dbus-marshal.c
1874 2005-01-12 Joe Shaw <joeshaw@novell.com>
1876 * NEWS: Update for 0.23.
1878 * configure.in: Release 0.23.
1880 2005-01-12 Joe Shaw <joeshaw@novell.com>
1882 * mono/Makefile.am, mono/example/Makefile.am: Always build the
1883 dbus DLL with --debug. Clean up after the .mdb files this leaves
1886 * mono/doc/Makefile.am: Need to uninstall the docs on "make
1889 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
1890 is an enum, get the enum's underlying type. Another mono
1893 2005-01-11 Joe Shaw <joeshaw@novell.com>
1895 Patch from Sjoerd Simons <sjoerd@luon.net>
1897 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
1898 DESTDIR. It breaks stuff.
1900 2005-01-11 Joe Shaw <joeshaw@novell.com>
1902 Patch from Tambet Ingo <tambet@ximian.com>
1904 * mono/DBusType/Array.cs (Get): Get the underlying element type by
1905 calling type.GetElementType(). The code previously depended on
1906 broken Mono behavior, which was fixed in Mono 1.1.3.
1908 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
1909 Activator.CreateInstance() so that the class's constructor is
1910 called with the right parameters.
1912 2005-01-11 Joe Shaw <joeshaw@novell.com>
1914 Patch from Timo Teräs <ext-timo.teras@nokia.com>
1916 * dbus/dbus-connection.c
1917 (_dbus_connection_queue_received_message_link): Call
1918 _dbus_connection_remove_timeout() instead of the _locked()
1919 variant, since it's always called from
1920 _dbus_connection_handle_watch(), which handles the locking.
1921 Removed the _locked() variant since it's no longer used.
1923 2005-01-03 Havoc Pennington <hp@redhat.com>
1925 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
1928 2004-12-26 Havoc Pennington <hp@redhat.com>
1930 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
1932 2005-01-03 Havoc Pennington <hp@redhat.com>
1934 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
1937 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
1939 2005-01-02 Havoc Pennington <hp@redhat.com>
1941 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
1943 2005-01-01 Havoc Pennington <hp@redhat.com>
1945 * configure.in: add -Wfloat-equal
1947 2005-01-01 Havoc Pennington <hp@redhat.com>
1949 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
1950 for a variety of reasons '==' doesn't do this.
1952 2004-12-31 Havoc Pennington <hp@redhat.com>
1954 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
1955 I keep wishing I had
1957 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
1959 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
1961 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
1963 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
1964 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
1965 dbus-protocol.h. Because they are defines and not enums they are not
1968 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
1970 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
1971 dbus_bus_activate_service
1973 * python/dbus.py (Bus.activate_service): activate a service on the
1976 2004-12-24 Havoc Pennington <hp@redhat.com>
1978 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
1979 file format has also changed and I haven't adapted to that yet
1981 * Makefile.am: load .gcno files from latest gcc
1983 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
1984 * Patch from Rob Taylor <robtaylor@fastmail.fm>
1986 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
1989 * python/dbus.py (get_unix_user): Added binding to
1990 call dbus_bindings.bus_get_unix_user
1992 * python/extract.py: Modified the proto_pat regex to
1993 handle unsigned long
1995 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1997 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
1998 better POSIX compliance.
2000 2004-12-19 Havoc Pennington <hp@redhat.com>
2002 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
2003 (_dbus_string_insert_8_aligned): new functions
2005 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
2007 2004-12-18 Havoc Pennington <hp@redhat.com>
2009 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
2012 * dbus/dbus-message.c: fix a comment, and add a still-unused
2013 not-implemented function
2015 * dbus/dbus-marshal.h: fix comment
2017 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
2019 2004-12-17 Joe Shaw <joeshaw@novell.com>
2021 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
2022 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
2023 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
2024 Type.UnderlyingSystemType to get the actual system type
2025 underneath. This code previously depended on the broken Mono
2026 behavior, which was fixed in 1.1.3.
2028 2004-11-27 Havoc Pennington <hp@redhat.com>
2030 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
2032 (_dbus_string_get_const_data): inline when asserts are disabled
2034 * dbus/dbus-message.c: record the _dbus_current_generation of
2035 creation so we can complain if dbus_shutdown() is used improperly.
2036 Do this only if checks are enabled.
2038 * dbus/dbus-connection.c: ditto
2040 2004-11-26 Havoc Pennington <hp@redhat.com>
2042 * test/glib/test-profile.c: add with_bus mode to profile echoes
2043 that go through the bus.
2045 * test/glib/run-test.sh: add ability to run test-profile
2047 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
2050 2004-11-26 Havoc Pennington <hp@redhat.com>
2052 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
2053 thing was implemented
2055 2004-11-26 Havoc Pennington <hp@redhat.com>
2057 * test/glib/test-profile.c: tweak a bit, add support for some
2058 made-up minimal malloc overhead with plain sockets, since in
2059 real life some sort of buffers are unavoidable thus we could
2060 count them in the theoretical best case
2062 2004-11-26 Havoc Pennington <hp@redhat.com>
2064 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
2065 where I was trying to cache one too many messages
2067 2004-11-26 Havoc Pennington <hp@redhat.com>
2069 * dbus/dbus-message.c: reimplement message cache as an array which
2070 makes the cache about twice as fast and saves maybe 1.5% overall
2072 2004-11-26 Havoc Pennington <hp@redhat.com>
2074 * dbus/dbus-threads.c (init_global_locks): forgot to put the
2075 message cache lock here
2077 2004-11-26 Havoc Pennington <hp@redhat.com>
2079 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
2080 the "char byte_order" next to each other to save 4 bytes
2081 (dbus_message_new_empty_header): reduce preallocation, since the
2082 message cache should achieve a similar effect
2083 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
2084 message cache that keeps a few DBusMessage around in a pool,
2085 another 8% speedup or so.
2087 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
2089 2004-11-25 Havoc Pennington <hp@redhat.com>
2091 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
2092 to write, without reading or blocking, try it before the poll()
2093 and skip the poll() if nothing remains to write. This is about a
2094 3% speedup in the echo client/server
2096 2004-11-25 Havoc Pennington <hp@redhat.com>
2098 The primary change here is to always write() once before adding
2099 the write watch, which gives us about a 10% performance increase.
2101 * dbus/dbus-transport-unix.c: a number of modifications to cope
2102 with removing messages_pending
2103 (check_write_watch): properly handle
2104 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
2105 messages_pending stuff
2106 (check_read_watch): properly handle WAITING_FOR_MEMORY and
2108 (unix_handle_watch): after writing, see if the write watch can be
2110 (unix_do_iteration): assert that write_watch/read_watch are
2111 non-NULL rather than testing that they aren't, since they
2112 aren't allowed to be NULL. check_write_watch() at the end so
2113 we add the watch if we did not finish writing (e.g. got EAGAIN)
2115 * dbus/dbus-transport-protected.h: remove messages_pending call,
2116 since it resulted in too much inefficient watch adding/removing;
2117 instead we now require that the transport user does an iteration
2118 after queueing outgoing messages, and after trying the first
2119 write() we add a write watch if we got EAGAIN or exceeded our
2120 max bytes to write per iteration setting
2122 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
2125 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
2126 freed and then accessed, valgrind flagged this bug, fix it
2128 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
2129 as the last valid field plus 1, where really it is equal to the
2130 last valid field. Corrects some message corruption issues.
2132 * dbus/dbus-mainloop.c: verbosity changes
2134 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
2135 instead of aborting in one of the test codepaths
2137 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
2138 caused not printing the pid ever again if a verbose was missing
2139 the newline at the end
2140 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
2142 * dbus/dbus-connection.c: verbosity changes;
2143 (dbus_connection_has_messages_to_send): new function
2144 (_dbus_connection_message_sent): no longer call transport->messages_pending
2145 (_dbus_connection_send_preallocated_unlocked): do one iteration to
2146 try to write() immediately, so we can avoid the write watch. This
2147 is the core purpose of this patchset
2148 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
2149 dump the outgoing message queue, so nobody will get confused
2150 trying to send them or thinking stuff is pending to be sent
2152 * bus/test.c: verbosity changes
2154 * bus/driver.c: verbosity/assertion changes
2156 * bus/dispatch.c: a bunch of little tweaks to get it working again
2157 because this patchset changes when/where you need to block.
2159 2004-11-23 Havoc Pennington <hp@redhat.com>
2161 * test/glib/test-profile.c: modify to accept a plain_sockets
2162 argument in which case it will bench plain sockets instead of
2163 libdbus, for comparison purposes.
2165 2004-11-22 Havoc Pennington <hp@redhat.com>
2167 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
2168 threads for more time, so sysprof can get a grip on it.
2170 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
2173 2004-11-13 Havoc Pennington <hp@redhat.com>
2175 * test/glib/test-profile.c: fix this thing up a bit
2177 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
2178 preallocation sizes by a fair bit; not sure if this will be an
2179 overall performance win or not, but it does reduce reallocs.
2181 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
2182 the test hack that forced constant realloc if asserts are
2183 disabled, so we can profile sanely. Sprinkle in some
2184 _DBUS_UNLIKELY() which are probably pointless, but before I
2185 noticed the real performance problem I put them in.
2186 (_dbus_string_validate_utf8): micro-optimize this thing a little
2187 bit, though callgrind says it didn't help; then special-case
2188 ascii, which did help a lot; then be sure we detect nul bytes as
2189 invalid, which is a bugfix.
2190 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
2191 superstition; use memset to nul the padding instead of a manual
2193 (_dbus_string_get_length): inline this as a
2194 macro; it showed up in the profile because it's used for loop
2197 2004-11-10 Colin Walters <walters@verbum.org>
2199 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
2202 2004-11-09 Colin Walters <walters@verbum.org>
2204 * dbus/dbus-string.c (_dbus_string_get_length): New
2205 function, writes DBusString to C buffer.
2207 * dbus/dbus-string.h: Prototype it.
2209 * dbus/dbus-message.c (dbus_message_type_to_string): New
2210 function, converts message type into C string.
2212 * dbus/dbus-message.h: Prototype it.
2214 * bus/selinux.c (bus_selinux_check): Take source pid,
2215 target pid, and audit data. Pass audit data to
2217 (log_audit_callback): New function, appends extra
2219 (bus_selinux_allows_acquire_service): Also take
2220 service name, add it to audit data.
2221 (bus_selinux_allows_send): Also take message
2222 type, interface, method member, error name,
2223 and destination, and add them to audit data.
2224 (log_cb): Initialize func_audit.
2226 * bus/selinux.h (bus_selinux_allows_acquire_service)
2227 (bus_selinux_allows_send): Update prototypes
2229 * bus/services.c (bus_registry_acquire_service): Pass
2230 service name to bus_selinux_allows_acquire_service.
2232 * bus/bus.c (bus_context_check_security_policy): Pass
2233 additional audit data. Move assignment of dest
2236 2004-11-07 Colin Walters <walters@verbum.org>
2238 * dbus/dbus-transport-unix.c (do_authentication): Always
2239 initialize auth_completed.
2241 2004-11-07 Colin Walters <walters@verbum.org>
2243 * bus/bus.c (load_config): Break into three
2244 separate functions: process_config_first_time_only,
2245 process_config_every_time, and process_config_postinit.
2246 (process_config_every_time): Move call of
2247 bus_registry_set_service_context_table into
2248 process_config_postinit.
2249 (process_config_postinit): New function, does
2250 any processing that needs to happen late
2251 in initialization (and also on reload).
2252 (bus_context_new): Instead of calling load_config,
2253 open config parser here and call process_config_first_time_only
2254 and process_config_every_time directly. Later, after
2255 we have forked but before changing UID,
2256 invoke bus_selinux_full_init, and then call
2257 process_config_postinit.
2258 (bus_context_reload_config): As in bus_context_new,
2259 load parse file inside here, and call process_config_every_time
2260 and process_config_postinit.
2262 * bus/services.h, bus/services.c
2263 (bus_registry_set_service_context_table): Rename
2264 from bus_registry_set_sid_table. Take string hash from config
2265 parser, and convert them here into SIDs.
2267 * bus/config-parser.c (struct BusConfigParser): Have
2268 config parser only store a mapping of service->context
2270 (merge_service_context_hash): New function.
2271 (merge_included): Merge context string hashes instead
2272 of using bus_selinux_id_table_union.
2273 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
2274 simply create a new string hash.
2275 (bus_config_parser_unref): Unref it.
2276 (start_selinux_child): Simply insert strings into hash,
2277 don't call bus_selinux_id_table_copy_over.
2279 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
2280 (bus_selinux_id_table_copy_over): Delete.
2282 2004-11-03 Colin Walters <walters@verbum.org>
2284 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
2287 2004-11-03 Colin Walters <walters@verbum.org>
2289 * bus/test-main.c (test_pre_hook): Fix test logic,
2290 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
2292 2004-11-02 Colin Walters <walters@redhat.com>
2294 * bus/selinux.c (bus_selinux_init): Split into two functions,
2295 bus_selinux_pre_init and bus_selinux_post_init.
2296 (bus_selinux_pre_init): Just determine whether SELinux is
2298 (bus_selinux_post_init): Do everything else.
2300 * bus/main.c (main): Call bus_selinux_pre_init before parsing
2301 config file, and bus_selinux_post_init after. This ensures that
2302 we don't lose the policyreload notification thread that
2303 bus_selinux_init created before forking previously.
2305 * bus/test-main.c (test_pre_hook): Update for split.
2307 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
2309 Patch from Johan Fischer <linux@fischaz.com>
2311 * mono/doc/Makefile.am (install-data-local): Added directory
2314 2004-10-29 Colin Walters <walters@redhat.com>
2316 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
2317 parameter for fd to write pid to.
2319 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
2321 * bus/bus.c (bus_context_new): Pass print_pid_fd
2322 to _dbus_become_daemon (bug #1720)
2324 2004-10-29 Colin Walters <walters@redhat.com>
2326 Patch from Ed Catmur <ed@catmur.co.uk>
2328 * mono/doc/Makefile.am (install-data-local): Handle
2331 2004-10-29 Colin Walters <walters@redhat.com>
2333 * bus/.cvsignore, qt/.cvsignore: Update.
2335 2004-10-29 Colin Walters <walters@redhat.com>
2337 Patch from Kristof Vansant <de_lupus@pandora.be>
2339 * configure.in: Detect Slackware.
2340 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
2341 * bus/rc.messagebus.in: New file.
2343 2004-10-29 Colin Walters <walters@redhat.com>
2345 * tools/dbus-monitor.c (filter_func): Return
2346 DBUS_HANDLER_RESULT_HANDLED in filter function
2348 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
2350 2004-10-29 Colin Walters <walters@redhat.com>
2352 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
2354 * bus/services.c (bus_registry_acquire_service):
2355 Correctly retrieve service name from DBusString
2358 2004-10-29 Colin Walters <walters@redhat.com>
2360 * dbus/dbus-glib.h: Update documentation to not
2361 refer to internal APIs.
2363 2004-10-27 Joe Shaw <joeshaw@novell.com>
2365 * mono/Arguments.cs (GetDBusTypeConstructor):
2366 type.UnderlyingSystemType will return "System.Byte" if you do it
2367 on "byte[]", which is not what we want. So check the type.IsArray
2368 property and use System.Array instead.
2370 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
2372 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
2373 the DBusUserInfo structure since this is passed into the function.
2374 This would cause a double free when the function that allocated
2375 the structure would try to free it when an error occured.
2377 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
2378 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
2379 for service activation to avoid 32bit/64bit parallel install issues
2381 2004-10-21 Colin Walters <walters@verbum.org>
2383 * AUTHORS: Fix my email address, the @gnu.org one
2384 has been bouncing for some time. Also add J5.
2386 2004-10-21 Colin Walters <walters@verbum.org>
2388 * dbus/dbus-transport-unix.c (do_authentication): Return
2389 authentication status to callers.
2390 (unix_handle_watch): If we completed authentication this round,
2391 don't do another read. Instead wait until the next iteration,
2392 after we've read any pending data in the auth buffer.
2393 (unix_do_iteration): Ditto.
2394 (unix_handle_watch): Updated for new do_authentication prototype.
2396 2004-10-18 Colin Walters <walters@verbum.org>
2398 * bus/selinux.c (bus_selinux_enabled): Handle
2399 --disable-selinux case.
2401 2004-10-18 Colin Walters <walters@verbum.org>
2403 * bus/selinux.h: Add bus_selinux_enabled.
2405 * bus/selinux.c (bus_selinux_enabled): Implement it.
2407 * bus/config-parser.c (struct include): Add
2408 if_selinux_enabled member.
2409 (start_busconfig_child): Parse if_selinux_enabled
2410 attribute for include.
2411 (bus_config_parser_content): Handle it.
2413 * bus/session.conf.in, bus/system.conf.in: Add
2414 inclusion of context mapping to default config files;
2415 conditional on SELinux being enabled.
2417 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
2419 * test/data/invalid-config-files/badselinux-1.conf,
2420 test/data/invalid-config-files/badselinux-2.conf:
2421 Test files for bad syntax.
2423 2004-10-17 Colin Walters <walters@verbum.org>
2425 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
2426 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
2427 format specifier mismatches.
2429 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
2431 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
2434 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
2435 pointer (bug #1540, Leonardo Boiko).
2437 2004-09-28 Jon Trowbridge <trow@ximian.com>
2439 * mono/BusDriver.cs: Changed BusDriver struct to remove
2440 the ServiceCreated and ServiceDeleted events and replace them
2441 with the new ServiceOwnerChanged event.
2443 * mono/example/BusListener.cs: Added a new example program,
2444 which listens for and reports any ServiceOwnerChanged events
2447 * mono/example/Makefile.am (DESTDIR): Build changes for the
2448 new BusListener.cs example.
2450 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
2452 * bus/signals.c (bus_match_rule_parse): validate the components of
2453 match rules (bug #1439).
2455 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
2457 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
2459 * doc/dbus-specification.xml: document ServiceOwnerChanged
2462 * bus/driver.c, bus/driver.h, bus/services.c: Use
2463 ServiceOwnerChanged signal instead of ServiceCreated and
2466 * bus/dispatch.c: update testcase for the new signal.
2468 2004-09-20 Jon Trowbridge <trow@ximian.com>
2470 Patch from Nat Friedman <nat@novell.com>
2472 * mono/Makefile.am: A number of small build fixes to allow "make
2473 distcheck" to succeed.
2475 * mono/example/Makefile.am: "make distcheck" fixes.
2477 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
2480 * test/Makefile.am: "make distcheck" fixes.
2482 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
2484 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
2486 * doc/busconfig.dtd: update the DTD for the at_console attribute.
2488 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
2489 messages after the first one (bug #1389).
2491 * bus/dispatch.c (check_double_hello_message): add a test case for
2492 the double hello message bug.
2493 (check_existent_service_activation): fix check of spawning error.
2495 2004-09-16 David Zeuthen <david@fubar.dk>
2497 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
2499 2004-09-12 David Zeuthen <david@fubar.dk>
2501 Patch from Kay Sievers <kay.sievers@vrfy.org>
2503 * bus/bus.c (bus_context_new):
2505 * bus/main.c (usage)
2507 Add commandline option --nofork to override configuration file
2510 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
2512 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
2513 compilers don't like it (bug #974).
2515 2004-09-04 Harald Fernengel <harry@kdevelop.org>
2517 * qt/connection.*: Applied patch by Jérôme Lodewyck
2518 <lodewyck@clipper.ens.fr> to integrate an existing
2519 connection into the Qt eventloop
2521 2004-08-30 Jon Trowbridge <trow@ximian.com>
2523 * mono/BusDriver.cs: Added. This is a class for interacting with
2524 the org.freedesktop.DBus service.
2526 * mono/Message.cs: Added a mechanism to expose the message that is
2527 currently being dispatched via the static Message.Current
2528 property. Added Message.Sender and Message.Destination
2531 * mono/Handler.cs: Expose the dispatched message via
2532 Message.Current when handling method calls.
2534 * mono/Service.cs: Expose the dispatched message via
2535 Message.Current when handling signal emissions.
2537 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
2538 Connection.BaseService property.
2540 2004-08-28 Havoc Pennington <hp@redhat.com>
2542 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
2544 More fixes from Steve Grubb
2546 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
2547 (_dbus_listen_tcp_socket): fix fd leak
2549 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
2550 EINTR to a bit lower in the code
2552 2004-08-26 Jon Trowbridge <trow@ximian.com>
2554 * bus/driver.c (bus_driver_handle_service_exists): Respond with
2555 TRUE if we are inquiring about the existence of the built-in
2556 org.freedesktop.DBus service.
2558 2004-08-25 John Palmieri <johnp@redhat.com>
2559 * bus/config-parser.c:
2560 (struct PolicyType): Add POLICY_CONSOLE
2561 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
2562 (start_busconfig_child): Sets up console element when
2563 <policy at_console=""> is encountered in a policy file
2564 (append_rule_from_element): Convert console elements to console
2568 (bus_policy_create_client_policy): Add console rules to the client
2569 policy based on if the client is at the console
2570 (bus_policy_append_console_rule): New function for adding a
2571 console rule to a policy
2572 (bus_policy_merge): Handle console rule merging
2574 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
2575 where we check for console user files
2577 * dbus/dbus-sysdeps.c:
2578 (_dbus_file_exists): New function which checks if the given
2580 (_dbus_user_at_console): New function which does the system
2581 specific process of checking if the user is at the console
2583 * dbus/dbus-userdb.c:
2584 (_dbus_is_console_user): New function converts a UID to user name
2585 and then calls the system specific _dbus_user_at_console to
2586 see if the user is at the console and therefor a console user
2588 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
2590 * bus/config-parser.c (set_limit):
2591 * bus/dbus-daemon-1.1.in:
2592 * test/data/valid-config-files/many-rules.conf: set the
2593 max_match_rules_per_connection limt from the config file.
2595 * doc/busconfig.dtd: update the DTD.
2597 * bus/driver.c: remove some unused variables.
2599 2004-08-24 Mikael Hallendal <micke@imendio.com>
2601 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
2602 it's been replaced by dbus_g_bus_get
2604 2004-08-23 Colin Walters <walters@redhat.com>
2606 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
2608 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
2610 * bus/selinux.c: Create a thread for policy reload notification.
2611 (bus_selinux_get_policy_root): Implement.
2613 * bus/config-parser.c (start_busconfig_child)
2614 (bus_config_parser_content): Support SELinux-root relative
2617 * configure.in <HAVE_SELINUX>: Add -lpthread.
2619 * bus/test-main.c (test_pre_hook, test_post_hook): New.
2620 (test_post_hook): Move memory checking into here.
2621 (test_pre_hook, test_post_hook): Move SELinux checks in
2622 here, but conditional on a DBUS_TEST_SELINUX environment
2623 variable. Unfortunately we can't run the SELinux checks
2624 as a normal user, since they won't have any permissions
2625 for /selinux. So this will have to be tested manually
2626 for now, until we have virtualization for most of
2629 2004-08-23 Havoc Pennington <hp@redhat.com>
2631 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
2632 drop supplementary groups, suggested by Steve Grubb
2634 2004-08-20 Colin Walters <walters@redhat.com>
2636 * bus/config-parser.c (start_busconfig_child): Remove some unused
2639 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
2642 2004-08-17 Joe Shaw <joeshaw@novell.com>
2644 * configure.in: If --enable-mono is passed in, if we can't find
2647 * mono/Makefile.am: Use /gacutil to install assemblies into the
2650 2004-08-12 Havoc Pennington <hp@redhat.com>
2652 * NEWS: update for 0.22
2654 * configure.in: release 0.22
2656 2004-08-11 Colin Walters <walters@redhat.com>
2658 * tools/dbus-send.c (main, usage): Add --reply-timeout
2661 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
2663 * bus/bus.c (process_config_first_time_only): get rid of an unused
2664 DBusError that was causing a memoy leak (bug #989).
2666 * dbus/dbus-keyring.c, dbus/dbus-message.c:
2667 fix compilation on Solaris/Forte C (bug #974)
2669 * bus/main.c (main): plug two minuscule memleaks.
2671 2004-08-10 Havoc Pennington <hp@redhat.com>
2673 * doc/dbus-tutorial.xml: add some more info on GLib bindings
2675 2004-08-09 Havoc Pennington <hp@redhat.com>
2677 * COPYING: switch to Academic Free License version 2.1 instead of
2678 2.0, to resolve complaints about patent termination clause.
2680 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
2682 * README: added documentation for the --enable-python
2685 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
2687 * bus/config-parser.c (bus_config_parser_new): fix an invalid
2688 _unref in the SELinux support.
2690 * doc/busconfig.dtd: update DTD for SELinux support.
2692 * bus/config-loader-libxml.c: fix error handler and parser
2693 initialisation/cleanup. OOM test now works with libxml2 HEAD.
2695 * configure.in: remove the warning about libxml2.
2697 * dbus/dbus-bus.c: silence doxygen warning.
2699 2004-07-31 Colin Walters <walters@redhat.com>
2701 * configure.in: Move #error in SELinux check to its own line.
2703 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
2705 * dbus/dbus-internals.h (_DBUS_SET_OOM):
2706 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
2709 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
2710 broken by the change in the _SET_OOM macros.
2712 2004-07-31 Colin Walters <walters@redhat.com>
2714 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
2717 2004-07-31 Colin Walters <walters@redhat.com>
2719 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
2720 to correctly detect DBUS__ACQUIRE_SVC. Also add an
2723 2004-07-24 Havoc Pennington <hp@redhat.com>
2725 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
2727 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
2730 * configure.in: add --enable-selinux
2732 * bus/policy.c (bus_policy_merge): add FIXME to a comment
2734 * bus/main.c (main): initialize and shut down selinux
2736 * bus/connection.c: store SELinux ID on each connection, to avoid
2737 repeated getting of the string context and converting it into
2740 * bus/bus.c (bus_context_get_policy): new accessor, though it
2742 (bus_context_check_security_policy): check whether the security
2743 context of sender connection can send to the security context of
2744 recipient connection
2746 * bus/config-parser.c: add parsing for <selinux> and <associate>
2748 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
2749 implement dbus_connection_get_unix_fd()
2751 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
2752 function, used by the selinux stuff
2754 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
2756 * bus/config-loader-libxml.c: complete the implementation of
2757 libxml backend for config file loader. Doesn't work with full OOM
2760 * configure.in: change error when selecting libxml into a warning.
2762 * test/data/invalid-config-files: add two non-well-formed XML
2765 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
2767 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
2768 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
2769 be necessary to read all the buffer. (bug #894)
2771 * bus/activation.c (bus_activation_activate_service): fix a
2772 potential assertion failure (bug #896). Small optimization in the
2773 case of auto-activation messages.
2775 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
2776 add test case for byte-through-vararg bug (#901). patch by Kimmo
2779 2004-07-28 Anders Carlsson <andersca@gnome.org>
2782 * python/dbus_bindings.pyx.in:
2783 Add dbus.init_gthreads (), allow emit_signal to pass
2784 arguments to the signal.
2786 2004-07-24 Havoc Pennington <hp@redhat.com>
2788 * AUTHORS: add some people, not really comprehensively, let me
2789 know if I missed you
2791 2004-07-24 Havoc Pennington <hp@redhat.com>
2793 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
2796 * test/Makefile.am (DIST_SUBDIRS): here also
2798 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
2800 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
2801 breaking build on Solaris, reported by Farhad Saberi on the ML.
2803 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
2804 va_arg invocation to account for integer promotion in the case of
2805 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
2807 * bus/services.c (bus_service_remove_owner): fix bug #902, use
2808 _dbus_list_get_first_link, not _dbus_list_get_first.
2810 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
2812 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
2813 handler functions so that the asserts in _dbus_object_subtree_unref
2816 * dbus/dbus-transport-unix.c (do_reading):
2817 _dbus_transport_queue_messages return value is of type
2818 dbus_bool_t, not DBusDispatchStatus.
2820 2004-07-19 David Zeuthen <david@fubar.dk>
2822 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
2825 (check_get_connection_unix_user): Debug says GetProperty; but the
2826 method is called GetConnectionUnixUser
2827 (check_get_connection_unix_process_id): New function
2828 (bus_dispatch_test): Actually call check_get_connection_unix_user();
2829 also call check_get_connection_unix_process_id()
2832 (bus_driver_handle_get_connection_unix_process_id): New function,
2833 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
2837 (handle_server_data_external_mech): Set pid from the credentials
2838 obtained from the socket
2840 * dbus/dbus-connection.c:
2841 (dbus_connection_get_unix_process_id): New function
2843 * dbus/dbus-connection.h:
2844 Add prototype for dbus_connection_get_unix_process_id
2846 * dbus/dbus-transport.c:
2847 (_dbus_transport_get_unix_process_id): New function
2849 * dbus/dbus-transport.h:
2850 Add prototype for _dbus_transport_get_unix_process_id
2852 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
2854 * dbus/dbus-message.c: Message counter fix, patch by Christian
2855 Hammond <chipx86@gnupdate.org>
2857 2004-07-18 Seth Nickell <seth@gnome.org>
2860 * python/dbus_bindings.pyx.in:
2861 * python/tests/test-client.py:
2863 Add dbus.ByteArray and dbus_bindings.ByteArray
2864 types so that byte streams can be passed back.
2866 Give jdahlin the heaps of credit that are so
2869 2004-07-12 Seth Nickell <seth@gnome.org>
2873 Add message argument to the default object_method_handler
2876 * python/dbus_bindings.pyx.in:
2878 Automatically return NIL when passed an empty list
2879 (we can't pass back a list since lists are typed
2880 and we don't have any idea what type the the client
2881 intended the list to be... :-( )
2883 2004-07-10 Seth Nickell <seth@gnome.org>
2885 * python/examples/Makefile.am:
2887 Fix distcheck breakage caused by new examples.
2889 2004-07-10 Seth Nickell <seth@gnome.org>
2893 Add "message" argument to service-side dbus.Object
2894 methods. This will break existing services written
2895 using the python bindings, but will allow extraction
2896 of all the message information (e.g. who its from).
2898 Add improved "object oriented" signal handling/emission.
2900 * python/examples/example-service.py:
2904 * python/examples/example-signal-emitter.py:
2905 * python/examples/example-signal-recipient.py:
2907 Two new examples that show how to emit and receive
2908 signals using the new APIs.
2910 * python/examples/example-signals.py:
2911 * python/examples/gconf-proxy-service.py:
2912 * python/examples/gconf-proxy-service2.py:
2914 Add "message" argument to service methods.
2916 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
2918 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
2919 * dbus/bus.c (dbus_bus_get_unix_user)
2920 * doc/dbus-specification.xml: implement GetConnectionUnixUser
2921 method of org.freedesktop.DBus interface.
2923 * bus/dispatch.c: test case
2925 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
2927 * python/Makefile.am: switched include directory from glib/ to dbus/
2928 since dbus-glib.h moved
2930 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
2932 * configure.in: prevent building the gcj stuff and libxml loader
2933 since they are broken.
2935 2004-06-20 Havoc Pennington <hp@redhat.com>
2937 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
2938 codes from the dbus error names
2940 * glib/dbus-glib.h: move to subdir dbus/ since it's included
2941 as dbus/dbus-glib.h and that breakage is now visible due to
2942 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
2944 * glib/dbus-glib.h: s/gproxy/g_proxy/
2946 * dbus/dbus-shared.h: new header to hold stuff shared with
2949 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
2952 * glib/dbus-glib.h (dbus_set_g_error): move to
2953 dbus-glib-lowlevel.h
2955 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
2956 of stuff to enable this
2958 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
2960 * a bunch of other changes with the same basic "separate glib
2961 bindings from dbus.h" theme
2963 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
2965 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
2967 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
2969 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
2971 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
2972 the reply value of the ServiceExists message.
2974 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
2976 * python/dbus_bindings.pyx.in: No longer need to parse path
2977 elements and pass them as arrays of strings. The C API now
2978 accepts plain path strings.
2979 (_build_parsed_path): removed
2981 2004-06-07 Havoc Pennington <hp@redhat.com>
2983 * doc/TODO: remove auto-activation item since it's done; sort
2984 items by importance/milestone
2986 2004-06-07 Havoc Pennington <hp@redhat.com>
2988 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
2989 random signature when using REQUIRED_FIELDS (this hack won't work
2992 * dbus/dbus-message.c: change the signature to be a header field,
2993 instead of message->signature special-case string. Incremental
2994 step forward. Then we can fix up code to send the signature in the
2995 message, then fix up code to validate said signature, then fix up
2996 code to not put the typecodes inline, etc.
2997 (load_one_message): don't make up the signature after the fact
2998 (decode_header_data): require signature field for the known
3001 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
3003 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
3005 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
3007 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
3009 * mono/Handler.cs: Updated to follow new path argument for
3010 (un-)registering objects.
3012 * mono/example/Makefile.am:
3014 * configure.in: Bumped required version for mono and use new -pkg
3017 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
3019 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
3020 registration functions take the path argument as char* instead of
3023 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
3024 split off the path decompostion part of
3025 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
3028 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
3030 2004-06-02 Kristian Høgsberg <krh@redhat.com>
3032 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
3033 machine approach. A state is implemented as a function that
3034 handles incoming events as specified for that state.
3036 * doc/dbus-specification.xml: Update auth protocol state machine
3037 specification to match implementation. Remove some leftover
3040 2004-06-02 Kristian Høgsberg <krh@redhat.com>
3042 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
3043 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
3046 * Doxyfile.in: remove deprecated options.
3048 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
3049 glib/test-thread.h, glib/test-thread-client.c,
3050 glib/test-thread-server.c, glib/test-profile.c,
3051 glib/test-dbus-glib.c: remove these unused files.
3053 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
3055 * dbus/dbus-object-tree.c
3056 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
3057 non-fallback handlers (bug #684).
3058 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
3059 (find_subtree_recurse): report wether the returned subtree is an
3060 exact match or a "fallback" match higher up in the tree.
3061 (object_tree_test_iteration): update test case.
3063 2004-06-01 Seth Nickell <seth@gnome.org>
3065 * python/dbus_bindings.pyx.in:
3066 * python/tests/test-client.py:
3068 Round off basic type support. Add dicts (yay!), and
3069 remaining array types.
3071 Make MessageIter more general so it works for dicts too.
3073 Mark all loop variables as C integers.
3075 2004-05-31 Havoc Pennington <hp@redhat.com>
3077 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
3080 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
3082 * glib/dbus-glib-tool.c (main): set up to have a --self-test
3083 option that runs the tests, and start filling in some code
3084 including for starters just dumping the interfaces to stdout
3086 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
3088 * test/data/valid-introspection-files/lots-of-types.xml: test of
3089 an example introspection file
3091 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
3094 2004-05-31 Seth Nickell <seth@gnome.org>
3096 * python/dbus_bindings.pyx.in:
3097 * python/tests/test-client.py:
3102 Fix string array memory trashing bug... oops...
3104 2004-05-30 Seth Nickell <seth@gnome.org>
3108 Add a nicer-but-less-flexible alternate API for handling
3109 calls to virtual objects in dbus.ObjectTree.
3111 Screw up the argument order to the dbus.Object constructor
3112 for consistency with dbus.ObjectTree (and to make dbus_methods
3113 optional for future extension)
3115 * python/examples/Makefile.am:
3116 * python/examples/gconf-proxy-service.py:
3117 * python/examples/gconf-proxy-service2.py:
3119 Alternate implementation of gconf-proxy-service using the
3120 nicer dbus.ObjectTree API.
3122 * python/examples/example-service.py:
3123 * python/tests/test-server.py
3125 Reverse the argument order to deal with dbus.Object constructor
3128 2004-05-30 Seth Nickell <seth@gnome.org>
3130 * python/examples/example-client.py:
3131 * python/examples/example-service.py:
3133 Take it back. Lists seem to work but they're broken
3134 in the test suite. Make the base examples use
3137 2004-05-30 Seth Nickell <seth@gnome.org>
3139 * python/dbus_bindings.pyx.in:
3140 * python/tests/test-client.py:
3142 Add some more tests and fix errors that crop up.
3143 Unfortunately, currently it seems like marshalling
3144 and unmarshalling of lists is completely broken :-(
3146 2004-05-30 Seth Nickell <seth@gnome.org>
3148 * python/dbus_bindings.pyx.in:
3150 Add support for ObjectPath type.
3154 Refactor message handling code to a common function.
3156 * python/tests/test-client.py:
3157 * python/tests/test-server.py:
3159 Add tests that check to make sure values of all types
3160 can be echoed from a service w/o mangling.
3162 2004-05-29 Seth Nickell <seth@gnome.org>
3166 Add ObjectTree class which allows implementation
3167 of trees of "virtual" objects. Basically the python
3168 wrapper for "register_fallback".
3170 * python/examples/Makefile.am
3171 * python/examples/gconf-proxy-client.py:
3172 * python/examples/gconf-proxy-service.py:
3174 Implement a simple GConf proxy service that supports
3175 get/set on string and int GConf keys using the ObjectTree.
3177 2004-05-29 Seth Nickell <seth@gnome.org>
3180 * python/examples/example-client.py:
3181 * python/examples/example-service.py:
3182 * python/examples/list-system-services.py:
3184 Add SessionBus, SystemBus and ActivationBus classes
3185 so you don't need to know the special little BUS_TYPE
3188 2004-05-29 Havoc Pennington <hp@redhat.com>
3190 * bus/config-parser.c (process_test_valid_subdir): temporarily
3191 stop testing config parser OOM handling, since expat has issues
3192 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
3194 * bus/dbus-daemon-1.1.in: change requested_reply to
3195 send_requested_reply/receive_requested_reply so we can send the
3196 replies, not just receive them.
3198 * bus/config-parser.c: parse the new
3199 send_requested_reply/receive_requested_reply
3201 * bus/policy.c (bus_client_policy_check_can_send): add
3202 requested_reply argument and use it
3204 * bus/bus.c (bus_context_check_security_policy): pass through
3205 requested_reply status to message send check
3207 * bus/system.conf.in: adapt to requested_reply change
3209 2004-05-28 Havoc Pennington <hp@redhat.com>
3211 * test/glib/test-service-glib.c (main): remove unused variable
3213 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
3215 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
3216 from the enum, no longer in use.
3218 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
3221 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
3222 whether error_name passed in is a valid error name.
3224 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
3226 * dbus/dbus-message.c (dbus_message_get_args): Added support for
3227 OBJECT_PATH and OBJECT_PATH_ARRAY
3229 2004-05-28 Seth Nickell <seth@gnome.org>
3231 * python/examples/Makefile.am:
3233 Forget to add Makefile.am. Do not pass go.
3235 2004-05-28 Michael Meeks <michael@ximian.com>
3237 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
3240 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
3242 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
3243 (_dbus_message_iter_get_basic_type_array): impl.
3244 drastically simplify ~all relevant _get methods to use these.
3245 (_dbus_message_iter_append_basic_array),
3246 (dbus_message_iter_append_basic): impl
3247 drastically simplify ~all relevant _append methods to use these.
3249 * dbus/dbus-message-builder.c (parse_basic_type)
3250 (parse_basic_array, lookup_basic_type): impl.
3251 (_dbus_message_data_load): prune scads of duplicate /
3254 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
3255 (_dbus_demarshal_basic_type): implement,
3256 (demarshal_and_validate_len/arg): beef up debug.
3257 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
3259 2004-05-27 Seth Nickell <seth@gnome.org>
3262 * python/Makefile.am:
3264 Include the example python apps in the tarball.
3266 * python/examples/list-system-services.py
3268 Add a python new example that fetches the list of services
3269 from the system bus.
3271 2004-05-27 Seth Nickell <seth@gnome.org>
3274 * python/dbus_bindings.pyx.in:
3276 Fix failure to notify that a signal was not handled,
3277 resulted in hung functions.
3279 2004-05-25 Colin Walters <walters@redhat.com>
3281 * tools/dbus-monitor.c (main): Monitor all types of messages.
3283 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
3285 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
3286 which unregisters the object path and disposes the handler.
3288 2004-05-23 Kristian Høgsberg <krh@redhat.com>
3290 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
3292 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
3293 operands to && so we call dbus_message_iter_next () for the last
3296 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
3298 * dbus/dbus-object-tree.c
3299 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
3300 children even if the requested path isn't registered.
3301 (object_tree_test_iteration): test object_tree_list_registered.
3303 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
3306 2004-05-20 Kristian Høgsberg <krh@redhat.com>
3308 * doc/TODO: Remove resolved items.
3310 * bus/expirelist.h (struct BusExpireList): remove unused n_items
3313 * bus/connection.c (bus_connections_expect_reply): Enforce the
3314 per-connection limit on pending replies.
3316 Patch from Jon Trowbridge <trow@ximian.com>:
3318 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
3319 up a watch that triggers a config reload when one end of the pipe
3321 (signal_handler): Instead of doing the config reload in our SIGHUP
3322 handler, just write to the reload pipe and let the associated
3323 watch handle the reload when control returns to the main loop.
3325 * bus/driver.c (bus_driver_handle_reload_config): Added.
3326 Implements a ReloadConfig method for requesting a configuration
3327 file reload via the bus driver.
3329 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
3331 * HACKING: Updated release instructions concerning the wiki page.
3333 2004-05-18 Kristian Høgsberg <krh@redhat.com>
3335 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
3336 filter against auth->allowed_mechs; we only add allowed mechs in
3337 record_mechanisms().
3339 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
3340 ALLOWED_MECHS to auth-script format so we can set the list of
3343 * data/auth/client-out-of-mechanisms.auth-script: New test to
3344 check client disconnects when it is out of mechanisms to try.
3346 * dbus/dbus-auth.c (process_command): Remove check for lines
3347 longer that 1 MB; we only buffer up maximum 16 kB.
3349 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
3350 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
3351 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
3352 assume there might be unused bytes.
3354 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
3355 client-out-of-mechs, it is handled in process_reject(). Move check
3356 for max failures to send_rejected(), as it's a server-only thing.
3358 * dbus/dbus-auth.c: Factor out protocol reply code into functions
3359 send_auth(), send_data(), send_rejected(), send_error(),
3360 send_ok(), send_begin() and send_cancel().
3362 2004-05-17 Kristian Høgsberg <krh@redhat.com>
3364 Remove base64 encoding, replace with hex encoding. Original patch
3365 from trow@ximian.com, added error handling.
3367 * dbus/dbus-string.c (_dbus_string_base64_encode)
3368 (_dbus_string_base64_decode): Remove.
3369 (_dbus_string_hex_decode): Add end_return argument so we can
3370 distinguish between OOM and invalid hex encoding.
3371 (_dbus_string_test): Remove base64 tests and add test case for
3374 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
3375 Replace base64 with hex.
3377 * test/data/auth/invalid-hex-encoding.auth-script: New test case
3378 for invalid hex encoded data in auth protocol.
3380 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
3382 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
3385 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
3387 * mono/dbus-sharp.dll.config.in: Added for GAC
3388 * mono/dbus-sharp.snk: Added for GAC
3389 * mono/Assembly.cs.in: Added for GAC
3390 * mono/Makefile.am: Changes for GAC installation
3391 * configure.in: Added refs for dbus-sharp.dll.config.in and
3392 Assembly.cs.in. More fixes for mono testing
3393 * mono/example/Makefile.am: Changed var to CSC
3394 * Makefile.am: Changed flag name to DBUS_USE_CSC
3396 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
3398 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
3399 * mono/doc/*: Added documentation framework
3400 * configure.in: Added monodoc check
3401 * README: Added description of mono configure flags
3403 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
3405 * doc/dbus-specification.xml: Added a "Required" column to the
3406 header fields table and changed the "zero or more" verbage in
3407 the above paragraph to read "The header must contain the required
3408 named header fields and zero or more of the optional named header
3410 * test/data/invalid-messages/*.message: Added the required PATH
3411 named header field to the tests so that they don't fail on
3412 'Missing path field'
3414 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
3416 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
3417 the stack by implicitly defining variable and parameter types and
3418 removing the hack of defining C pointers as python objects and later
3421 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
3423 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
3425 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
3427 * mono/DBusType/Dict.cs: Handle empty dicts
3428 * mono/DBusType/Array.cs: Handle empty arrays
3429 * mono/Arguments.cs: Handle empty arguments
3431 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
3433 * dbus-sharp.pc.in: Modified to include include Libs and Requires
3436 2004-04-25 Kristian Høgsberg <krh@redhat.com>
3438 * test/data/valid-messages/standard-*.message: Update message
3439 test scripts to new header field names.
3441 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
3443 * test/break-loader.c (randomly_do_n_things): tracked down buffer
3444 overflow to times_we_did_each_thing array which would chop off the
3445 first character of the failure_dir string. Increased the size of
3446 the array to 7 to reflect the number of random mutation functions
3449 2004-04-21 Kristian Høgsberg <krh@redhat.com>
3451 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
3452 unix_server->watch here, it is unreffed in disconnect.
3453 (_dbus_server_new_for_tcp_socket): convert NULL host to
3454 "localhost" here so we don't append NULL to address.
3456 * dbus/dbus-server.c (_dbus_server_test): Add test case for
3457 various addresses, including tcp with no explicit host.
3459 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
3461 * dbus/dbus-message.c (decode_header_data, decode_string_field):
3462 fix incorrect setting of .name_offset in the HeaderField (it was
3463 off by two bytes, positioned right after the name and typecode)
3465 * bus/bus.c (bus_context_new, bus_context_unref): test before
3466 calling dbus_server_free_data_slot and _dbus_user_database_unref
3467 in case of an error.
3469 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
3472 2004-04-19 Kristian Høgsberg <krh@redhat.com>
3474 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
3475 _dbus_poll() instead of select().
3477 2004-04-15 Jon Trowbridge <trow@ximian.com>
3479 * bus/main.c (signal_handler): Reload the configuration files
3481 (main): Set up our SIGHUP handler.
3483 * bus/bus.c (struct BusContext): Store the config file, user and
3484 fork flag in the BusContext.
3485 (process_config_first_time_only): Added. Contains the code
3486 (previously in bus_context_new) for setting up the BusContext from
3487 the BusConfigParser that should only be run the first time the
3488 config files are read.
3489 (process_config_every_time): Added. Contains the code (previously
3490 in bus_context_new) for setting up the BusContext from the
3491 BusConfigParser that should be run every time the config files are
3493 (load_config): Added. Builds a BusConfigParser from the config
3494 files and passes the resulting structure off to
3495 process_config_first_time_only (assuming this is the first time)
3496 and process_config_every_time.
3497 (bus_context_new): All of the config-related code has been moved
3498 to process_config_first_time_only and process_config_every_time.
3499 Now this function just does the non-config-related initializations
3500 and calls load_config.
3501 (bus_context_reload_config): Added.
3503 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
3505 * bus/driver.c (bus_driver_handle_get_service_owner):
3506 implement a GetServiceOwner method.
3507 * doc/dbus-specification.xml: document it.
3508 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
3510 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
3511 implement, using the bus GetServiceOwner method.
3513 * test/glib/test-dbus-glib.c:
3514 use dbus_gproxy_new_for_service_owner so that we can receive the
3517 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
3519 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
3520 dbus/dbus-message.c, dbus/dbus-protocol.h
3521 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
3523 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
3524 dbus/dbus-message.c, dbus/dbus-protocol.h
3525 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
3527 * dbus/dbus-internals.c (_dbus_header_field_to_string):
3528 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
3529 DBUS_HEADER_FIELD_SENDER resolves to "sender"
3531 * doc/dbus-specification.xml (Header Fields Table):
3532 s/SERVICE/DESTINATION
3533 s/SENDER_SERVICE/SENDER
3536 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
3538 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
3541 2004-04-13 Michael Meeks <michael@ximian.com>
3543 * glib/dbus-gobject.c (handle_introspect): split out
3544 (introspect_properties): this.
3545 (handle_introspect): implement this.
3547 * test/glib/Makefile.am: use the absolute path so the bus
3548 daemon's chdir ("/") doesn't kill us dead.
3550 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
3552 2004-04-12 Jon Trowbridge <trow@ximian.com>
3554 * bus/config-parser.c (struct BusConfigParser): Added
3555 included_files field.
3556 (seen_include): Added. Checks whether or not a file has already
3557 been included by any parent BusConfigParser.
3558 (bus_config_parser_new): Copy the parent's included_files.
3559 (include_file): Track which files have been included, and fail on
3560 circular inclusions.
3561 (process_test_valid_subdir): Changed printf to report if we are
3562 testing valid or invalid conf files.
3563 (all_are_equiv): Changed printf to be a bit clearer about
3564 what we are actually doing.
3565 (bus_config_parser_test): Test invalid configuration files.
3567 2004-04-09 Jon Trowbridge <trow@ximian.com>
3569 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
3570 argument. If non-null, the newly-constructed BusConfigParser will
3571 be initialized with the parent's BusLimits instead of the default
3573 (include_file): When including a config file, pass in
3574 the current parser as the parent and then copy the BusLimits
3575 from the included BusConfigParser pack to the current parser.
3576 (process_test_valid_subdir): Renamed from process_test_subdir.
3577 (process_test_equiv_subdir): Added. Walks through a directory,
3578 descending into each subdirectory and loading the config files
3579 it finds there. If any subdirectory contains two config files
3580 that don't produce identical BusConfigParser structs, fail.
3581 For now, the BusConfigParser's BusPolicies are not compared.
3582 (bus_config_parser_test): Call both process_test_valid_subdir and
3583 process_test_equiv_subdir.
3585 * bus/config-loader-libxml.c (bus_config_load): Take a parent
3586 argument and pass it along to the call to bus_config_parser_new.
3587 Also made a few small changes to allow this code to compile.
3589 * bus/config-loader-expat.c (bus_config_load): Take a parent
3590 argument and pass it along to the call to bus_config_parser_new.
3592 * bus/bus.c (bus_context_new): Load the config file
3593 with a NULL parent argument.
3595 2004-03-29 Michael Meeks <michael@ximian.com>
3597 * glib/dbus-gobject.c (introspect_properties): split
3598 out, fix mangled 'while' flow control.
3599 (introspect_signals): implement.
3600 (handle_introspect): update.
3602 2004-03-29 Michael Meeks <michael@ximian.com>
3604 * glib/dbus-gobject.c (set_object_property): split out /
3605 re-work, use the property type, and not the message type(!)
3606 (get_object_property): ditto.
3608 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
3609 (dbus_gvalue_marshal): make this code re-usable, needed
3610 for signals too, also on both proxy and server side.
3611 Re-write for more efficiency / readability.
3613 2004-03-29 Michael Meeks <michael@ximian.com>
3615 * dbus/dbus-message.c
3616 (dbus_message_new_error_printf): impl.
3618 * dbus/dbus-connection.c
3619 (dbus_connection_unregister_object_path): fix warning.
3621 * configure.in: fix no-mono-installed situation.
3623 2004-03-27 Havoc Pennington <hp@redhat.com>
3625 Patch from Timo Teräs:
3627 * tools/dbus-send.c (main): if --print-reply, assume type is
3628 method call; support boolean type args
3630 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
3631 bunch of memleak and logic bugs
3633 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
3635 * mono/Arguments.cs:
3636 * mono/Introspector.cs:
3638 * mono/InterfaceProxy.cs:
3640 * mono/ProxyBuilder.cs:
3642 Added InterfaceProxy class to avoid building proxies for every
3646 * dbus-message.c (dbus_message_append_args_valist)
3647 (dbus_message_iter_get_object_path)
3648 (dbus_message_iter_get_object_path_array)
3649 (dbus_message_iter_append_object_path)
3650 (dbus_message_iter_append_object_path_array):
3651 Added object_path iter functions to handle OBJECT_PATH arguments
3653 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
3655 First checkin of mono bindings.
3658 Build stuff for the bindings
3659 * dbus-sharp.pc.in: Added for pkgconfig
3661 2004-03-21 Havoc Pennington <hp@redhat.com>
3663 * test/test-service.c (main): remove debug spew
3665 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
3667 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
3670 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
3671 (dbus_message_iter_init_array_iterator)
3672 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
3673 indicate whether the iterator is empty
3675 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
3678 2004-03-19 Havoc Pennington <hp@redhat.com>
3680 * NEWS: 0.21 updates
3682 * configure.in: 0.21
3684 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
3686 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
3687 you don't need pyrex to make dist
3689 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
3692 2004-03-18 Richard Hult <richard@imendio.com>
3694 * dbus/dbus-message.c (dbus_message_get_auto_activation)
3695 (dbus_message_set_auto_activation): Add doxygen docs.
3697 2004-03-16 Richard Hult <richard@imendio.com>
3699 * bus/activation.c: (bus_activation_service_created),
3700 (bus_activation_send_pending_auto_activation_messages),
3701 (bus_activation_activate_service):
3703 * bus/dispatch.c: (bus_dispatch),
3704 (check_nonexistent_service_auto_activation),
3705 (check_service_auto_activated),
3706 (check_segfault_service_auto_activation),
3707 (check_existent_service_auto_activation), (bus_dispatch_test):
3708 * bus/driver.c: (bus_driver_handle_activate_service):
3709 * bus/services.c: (bus_registry_acquire_service):
3710 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
3711 (dbus_message_get_auto_activation):
3712 * dbus/dbus-message.h:
3713 * dbus/dbus-protocol.h: Implement auto-activation.
3715 * doc/dbus-specification.xml: Add auto-activation to the spec.
3717 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
3719 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
3720 fix a bug with CUSTOM types.
3722 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
3723 a unit test for this bug (used to fail).
3725 2004-03-12 Mikael Hallendal <micke@imendio.com>
3728 (babysitter_watch_callback): notify all pending activations waiting for
3729 the same exec that the activation failed.
3730 (bus_activation_activate_service): shortcut the activation if we
3731 already waiting for the same executable to start up.
3733 2004-03-12 Mikael Hallendal <micke@imendio.com>
3736 - Added service file reloading.
3737 Each service files directory is kept in an hash table in
3738 BusActivation and each BusActivationEntry knows what .service-file it
3739 was read from. So when you try to activate a service the bus will
3740 check if it's been updated, removed or if new .service-files has
3742 - Test code at the bottom for the service file reloading.
3743 * bus/test-main.c: (main):
3745 - added service reloading test.
3746 * dbus/dbus-sysdeps.c:
3747 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
3749 2004-03-08 Michael Meeks <michael@ximian.com>
3751 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
3752 bail immediately if disconnected, to avoid busy loop.
3754 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
3755 cleanup cut/paste/inefficiency.
3757 2004-03-01 David Zeuthen <david@fubar.dk>
3759 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
3760 bug where args were used twice. This bug resulted in a segfault
3761 on a Debian/PPC system when starting the messagebus daemon. Include
3762 dbus-sysdeps.h for DBUS_VA_COPY
3764 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
3766 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
3767 appropriate va_copy implementation. From GLib
3769 2004-02-24 Joe Shaw <joe@ximian.com>
3771 * bus/services.c (bus_registry_acquire_service): We need to pass
3772 in the service name to dbus_set_error() to prevent a crash.
3774 2003-12-26 Anders Carlsson <andersca@gnome.org>
3776 * AUTHORS: Reveal my True identity.
3778 2003-12-17 Mikael Hallendal <micke@imendio.com>
3780 * dbus/dbus-message.c: (dbus_message_append_args_valist):
3781 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
3783 2003-12-13 Mikael Hallendal <micke@imendio.com>
3785 * doc/TODO: Added not about better error check of configuration files.
3787 2003-12-02 Richard Hult <richard@imendio.com>
3789 * Update AFL version to 2.0 throughout the source files to reflect
3790 the update that was done a while ago.
3792 2003-12-02 Richard Hult <richard@imendio.com>
3794 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
3795 wrote_dict_key to FALSE on the iter that the dict is appended to,
3796 just like when appending other types. Fixes a bug where a dict
3797 couldn't be put inside a dict.
3798 (dbus_message_iter_append_dict_key): Fix typo in warning message.
3799 (message_iter_test, _dbus_message_test): Add test case for dict
3802 2003-12-01 David Zeuthen <david@fubar.dk>
3804 * python/dbus.py: Add the actual message when calling the reciever
3805 of a signal such that parameters can be inspected. Add the method
3806 remove_signal_receiver
3808 2003-11-26 Mikael Hallendal <micke@imendio.com>
3812 * glib/*.[ch]: Made ref functions return the pointer
3814 2003-11-25 Zack Rusin <zack@kde.org>
3816 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
3818 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
3821 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
3822 the Integrator and to better fit with the server,
3824 2003-11-24 Zack Rusin <zack@kde.org>
3826 * qt/connection.h, qt/connection.cpp: removing initDbus method since
3827 the integrator handles it now
3829 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
3830 since QTimer wasn't really meant to be used the way DBusTimeout is
3832 2003-11-24 Zack Rusin <zack@kde.org>
3834 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
3835 Integrator class which integrates D-BUS with the Qt event loop,
3837 * qt/connection.h, qt/connection.cpp: Move all the code which
3838 was dealing with D-BUS integration to the Integrator class,
3839 and start using Integrator,
3841 2003-11-23 Zack Rusin <zack@kde.org>
3843 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
3846 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
3847 switching namespaces to DBusQt, reworking the class,
3849 * Makefile.cvs: switching dependencies so that it matches KDE
3852 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
3855 2003-11-19 Havoc Pennington <hp@redhat.com>
3859 * configure.in: bump version to 0.20
3861 * configure.in (have_qt): add yet another place to look for qt
3862 (someone hand trolltech a .pc file...)
3864 2003-11-01 Havoc Pennington <hp@redhat.com>
3866 * doc/dbus-specification.xml: add state machine docs on the auth
3867 protocol; just a first draft, I'm sure it's wrong.
3869 2003-10-28 David Zeuthen <david@fubar.dk>
3871 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
3872 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
3874 2003-10-28 Havoc Pennington <hp@redhat.com>
3876 * dbus/dbus-message.c (get_next_field): delete unused function
3878 2003-10-28 Havoc Pennington <hp@redhat.com>
3880 * bus/expirelist.c (do_expiration_with_current_time): detect
3881 failure of the expire_func due to OOM
3883 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
3885 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
3886 NoReply error that's now created by the bus when the service exits
3888 2003-10-28 Havoc Pennington <hp@redhat.com>
3890 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
3891 tests for set_path, set_interface, set_member, etc.
3893 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
3895 * dbus/dbus-message.c (set_string_field): always just delete and
3896 re-append the field; accept NULL for deletion
3897 (re_align_fields_recurse): reimplement
3899 2003-10-26 Havoc Pennington <hp@redhat.com>
3901 * dbus/dbus-connection.c: fix docs to properly describe the
3902 disconnected message
3903 (_dbus_connection_notify_disconnected): remove this function;
3904 we can't synchronously add the disconnected message, we have to
3905 do it after we've queued any remaining real messages
3906 (_dbus_connection_get_dispatch_status_unlocked): queue the
3907 disconnect message only if the transport has finished queueing all
3908 its real messages and is disconnected.
3909 (dbus_connection_disconnect): update the dispatch status here
3911 2003-10-22 Havoc Pennington <hp@redhat.com>
3913 * bus/bus.c (bus_context_check_security_policy): fix up assertion
3915 * bus/connection.c (bus_transaction_send_from_driver): set the
3916 destination to the connection's base service
3918 2003-10-20 Havoc Pennington <hp@redhat.com>
3920 hmm, make check is currently not passing.
3922 * doc/dbus-specification.xml: add requirement that custom type
3923 names follow the same rules as interface names.
3925 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
3926 duplication and allow 'c' to be 'custom'; dict is now 'm' for
3929 * doc/dbus-specification.xml: update type codes to match
3930 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
3931 CUSTOM. Add type OBJECT_PATH to the spec.
3933 2003-10-17 Havoc Pennington <hp@redhat.com>
3935 * bus/driver.c (create_unique_client_name): use "." as separator
3936 in base service names instead of '-'
3938 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
3939 byte at the end of the string
3941 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
3942 optimization macros since string validation seems to be a slow
3945 * doc/dbus-specification.xml: restrict valid
3946 service/interface/member/error names. Add test suite code for the
3949 * dbus/dbus-string.c: limit service/interface/member/error names
3952 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
3953 format arg to verbose spew
3955 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
3956 memory, return instead of g_error
3958 * test/test-service.c (path_message_func): support emitting a
3961 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
3962 activation bus type if DBUS_BUS_ACTIVATION was set; default to
3963 assuming the activation bus was the session bus so that services
3964 started manually will still register.
3965 (init_connections_unlocked): fix so that in OOM situation we get
3966 the same semantics when retrying the function
3968 * test/test-service.c (main): change to use path registration, to
3969 test those codepaths; register with DBUS_BUS_ACTIVATION rather
3970 than DBUS_BUS_SESSION
3972 2003-10-16 Havoc Pennington <hp@redhat.com>
3974 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
3976 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
3977 coverage of the tests
3978 (coverage-report.txt): don't move the .da and .bbg files around
3980 2003-10-16 Havoc Pennington <hp@redhat.com>
3982 * bus/bus.c (struct BusContext): remove struct field I didn't mean
3985 2003-10-16 Havoc Pennington <hp@redhat.com>
3987 * bus/connection.c (bus_pending_reply_expired): either cancel or
3989 (bus_connections_check_reply): use unlink, not remove_link, as we
3990 don't want to free the link; fixes double free mess
3992 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
3993 where no reply was received
3995 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
3998 * bus/signals.c (match_rule_matches): add special cases for the
3999 bus driver, so you can match on sender/destination for it.
4001 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
4002 DBUS_PRINT_BACKTRACE is set
4004 * dbus/dbus-internals.c: add pid to assertion failure messages
4006 * dbus/dbus-connection.c: add message type code to the debug spew
4008 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
4009 sender=foo not service=foo
4011 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
4012 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
4013 DBUS_ACTIVATION_ADDRESS instead
4015 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
4016 DBUS_SYSTEM_BUS_ADDRESS if appropriate
4018 * bus/bus.c (bus_context_new): handle OOM copying bus type into
4021 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
4022 (dbus_message_iter_get_object_path_array): new function (half
4023 finished, disabled for the moment)
4025 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
4026 DBUS_MESSAGE_TYPE_ERROR
4028 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
4029 avoid redirecting stderr to /dev/null
4030 (babysit): close stdin if not doing the "exit_with_session" thing
4032 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
4033 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
4034 stdout/stdin, so things don't get confused
4036 * bus/system.conf.in: fix to allow replies, I modified .conf
4037 instead of .conf.in again.
4039 2003-10-14 David Zeuthen <david@fubar.dk>
4041 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
4042 argtype to arg_type when raising unknown arg type exception.
4043 Changed type list to reflect the changes in dbus-protocol.h so
4044 the bindings actually work.
4046 2003-10-14 Havoc Pennington <hp@redhat.com>
4048 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
4049 to have a bug keeping it from outputting the .da files sometimes
4050 (string_get_string): don't append garbage nul bytes to the string.
4052 2003-10-15 Seth Nickell <seth@gnome.org>
4054 * python/Makefile.am:
4056 Include dbus_h_wrapper.h in the dist tarball.
4058 2003-10-14 Havoc Pennington <hp@redhat.com>
4060 * bus/bus.c (bus_context_check_security_policy): revamp this to
4061 work more sanely with new policy-based requested reply setup
4063 * bus/connection.c (bus_transaction_send_from_driver): set bus
4064 driver messages as no reply
4066 * bus/policy.c (bus_client_policy_check_can_receive): handle a
4067 requested_reply attribute on allow/deny rules
4069 * bus/system.conf: add <allow requested_reply="true"/>
4071 * bus/driver.c (bus_driver_handle_message): fix check for replies
4072 sent to the bus driver, which was backward. How did this ever work
4073 at all though? I think I'm missing something.
4075 * dbus/dbus-message.c (decode_header_data): require error and
4076 method return messages to have a reply serial field to be valid
4077 (_dbus_message_loader_queue_messages): break up this function;
4078 validate that reply serial and plain serial are nonzero;
4079 clean up the OOM/error handling.
4080 (get_uint_field): don't return -1 from this
4081 (dbus_message_create_header): fix signed/unsigned bug
4083 * bus/connection.c (bus_connections_expect_reply): save serial of
4084 the incoming message, not reply serial
4086 2003-10-14 Havoc Pennington <hp@redhat.com>
4088 * bus/connection.c: implement pending reply tracking using
4091 * bus/bus.c (bus_context_check_security_policy): verify that a
4092 reply is pending in order to allow a reply to be sent. Deny
4093 messages of unknown type.
4095 * bus/dbus-daemon-1.1.in: update to mention new resource limits
4097 * bus/bus.c (bus_context_get_max_replies_per_connection): new
4098 (bus_context_get_reply_timeout): new
4100 2003-10-13 Seth Nickell <seth@gnome.org>
4102 * python/Makefile.am:
4104 Pass "make distcheck": remove a couple files from DIST_FILES
4105 that weren't included in the final version.
4107 2003-10-12 Havoc Pennington <hp@pobox.com>
4109 Added test code that 1) starts an actual bus daemon and 2) uses
4110 DBusGProxy; fixed bugs that were revealed by the test. Lots
4111 more testing possible, but this is the basic framework.
4113 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
4114 empty proxy lists from the proxy list hash
4116 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
4117 couple of return_if_fail checks
4119 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
4120 to allocate, so everything is cleared to NULL as it should be.
4122 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
4123 source as data to dbus_connection_set_timeout_functions() as the
4124 timeout functions expected
4126 * test/glib/run-test.sh: add a little script to start up a message
4127 bus and run tests using it
4129 * tools/dbus-launch.1: updates
4131 * tools/dbus-launch.c (main): add --config-file option
4133 * tools/dbus-launch.c (main): remove confusing else if (runprog)
4134 that could never be reached.
4136 * dbus/dbus-message.c (dbus_message_new_method_return)
4137 (dbus_message_new_error, dbus_message_new_signal): set the
4138 no-reply-expected flag on all these. Redundant, but may
4139 as well be consistent.
4141 2003-10-11 Havoc Pennington <hp@pobox.com>
4143 * test/decode-gcov.c (function_solve_graph): make broken block
4144 graph a nonfatal error since it seems to be broken. Need to debug
4147 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
4148 can't just check type > INVALID < LAST anymore
4150 * dbus/dbus-message.c (dbus_message_get_signature): new function
4151 (dbus_message_has_signature): new function
4152 (struct DBusMessage): add signature field (right now it isn't sent
4153 over the wire, just generated on the fly)
4154 (dbus_message_copy): copy the signature, and init strings to
4155 proper length to avoid some reallocs
4156 (dbus_message_iter_init_array_iterator): return void, since it
4158 (dbus_message_iter_init_dict_iterator): return void since it can't fail
4159 (_dbus_message_loader_queue_messages): add silly temporary hack to
4160 fill in message->signature on load
4162 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
4163 characters, so they are relatively human-readable.
4165 2003-10-11 Havoc Pennington <hp@pobox.com>
4167 * dbus/dbus-message.c (_dbus_message_test): add more test
4168 coverage, but #if 0 for now since they uncover a bug
4169 not fixed yet; I think in re_align_field_recurse()
4170 (re_align_field_recurse): add FIXME about broken assertion
4172 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
4174 * bus/connection.c: share a couple code bits with expirelist.c
4176 * bus/expirelist.h, bus/expirelist.c: implement a generic
4177 expire-items-after-N-seconds facility, was going to share between
4178 expiring connections and replies, decided not to use for expiring
4179 connections for now.
4181 * COPYING: include AFL 2.0 (still need to change all the file headers)
4183 2003-10-09 Havoc Pennington <hp@redhat.com>
4185 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
4186 gcc 3.3. Not that we do anything about it yet.
4188 * bus/signals.c (bus_match_rule_parse): impose max length on the
4191 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
4193 2003-10-09 Havoc Pennington <hp@redhat.com>
4195 Make matching rules theoretically work (add parser).
4197 * bus/bus.c (bus_context_check_security_policy): fix up to handle
4198 the case where destination is explicitly specified as bus driver
4199 and someone else is eavesdropping.
4201 * bus/policy.c (bus_client_policy_check_can_receive): fix up
4202 definition of eavesdropping and assertion
4204 * tools/dbus-send.c (main): use dbus_message_type_from_string
4206 * bus/signals.c (bus_match_rule_parse): implement
4208 * dbus/dbus-message.c (dbus_message_type_from_string): new
4210 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
4212 2003-10-02 Havoc Pennington <hp@pobox.com>
4214 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
4215 dbus_gproxy_oneway_call
4217 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
4218 (dbus_server_setup_with_g_main): fix to allow calling them more
4219 than once on the same args
4220 (dbus_bus_get_with_g_main): new function
4222 2003-10-02 Havoc Pennington <hp@redhat.com>
4224 * doc/dbus-tutorial.xml: write some stuff
4226 2003-09-29 Havoc Pennington <hp@pobox.com>
4228 * configure.in: split checks for Doxygen from XML docs, check for
4231 * doc/Makefile.am: XML-ify all the docs, and add a blank
4234 2003-09-29 Havoc Pennington <hp@pobox.com>
4236 * Merge dbus-object-names branch. To see the entire patch
4237 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
4238 it's huuuuge though.
4239 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
4241 2003-09-28 Havoc Pennington <hp@pobox.com>
4243 * HACKING: update to reflect new server
4245 2003-09-26 Seth Nickell <seth@gnome.org>
4248 * python/examples/example-signals.py:
4250 Start implementing some notions of signals. The API
4251 is really terrible, but they sort of work (with the
4252 exception of being able to filter by service, and to
4253 transmit signals *as* a particular service). Need to
4254 figure out how to make messages come from the service
4257 * python/dbus_bindings.pyx.in:
4259 Removed duplicate message_handler callbacks.
4261 2003-09-25 Havoc Pennington <hp@redhat.com>
4263 * bus/session.conf.in: fix my mess
4265 2003-09-25 Havoc Pennington <hp@pobox.com>
4267 * bus/session.conf.in: fix security policy, reported by Seth Nickell
4269 2003-09-25 Seth Nickell <seth@gnome.org>
4271 * python/examples/example-service.py:
4273 Johan notices complete wrong code in example-service, but
4274 completely wrong in a way that works exactly the same (!).
4275 Johan is confused, how could this possibly work? Example
4276 code fails to serve purpose of making things clear.
4279 2003-09-25 Mark McLoughlin <mark@skynet.ie>
4281 * doc/dbus-specification.sgml: don't require header fields
4282 to be 4-byte aligned and specify that fields should be
4283 distinguished from padding by the fact that zero is not
4286 * doc/TODO: remove re-alignment item and add item to doc
4287 the OBJECT_PATH type.
4289 * dbus/dbus-message.c:
4290 (HeaderField): rename the original member to value_offset
4291 and introduce a name_offset member to keep track of where
4292 the field actually begins.
4293 (adjust_field_offsets): remove.
4294 (append_int_field), (append_uint_field),
4295 (append_string_field): don't align the start of the header
4296 field to a 4-byte boundary.
4297 (get_next_field): impl finding the next marhsalled field
4298 after a given field.
4299 (re_align_field_recurse): impl re-aligning a number of
4300 already marshalled fields.
4301 (delete_field): impl deleting a field of any type and
4302 re-aligning any following fields.
4303 (delete_int_or_uint_field), (delete_string_field): remove.
4304 (set_int_field), (set_uint_field): no need to re-check
4305 that we have the correct type for the field.
4306 (set_string_field): ditto and impl re-aligning any
4308 (decode_header_data): update to take into account that
4309 the fields aren't 4-byte aligned any more and the new
4310 way to distinguish padding from header fields. Also,
4311 don't exit when there is too much header padding.
4312 (process_test_subdir): print the directory.
4313 (_dbus_message_test): add test to make sure a following
4314 field is re-aligned correctly after field deletion.
4316 * dbus/dbus-string.[ch]:
4317 (_dbus_string_insert_bytes): rename from insert_byte and
4318 allow the insert of multiple bytes.
4319 (_dbus_string_test): test inserting multiple bytes.
4321 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
4322 warning note to docs about having to re-align any
4323 marshalled values following the string.
4325 * dbus/dbus-message-builder.c:
4326 (append_string_field), (_dbus_message_data_load):
4327 don't align the header field.
4329 * dbus/dbus-auth.c: (process_test_subdir): print the
4332 * test/break-loader.c: (randomly_add_one_byte): upd. for
4335 * test/data/invalid-messages/bad-header-field-alignment.message:
4338 * test/data/valid-messages/unknown-header-field.message: shove
4339 a dict in the unknown field.
4341 2003-09-25 Seth Nickell <seth@gnome.org>
4344 * python/dbus_bindings.pyx.in:
4346 Handle return values.
4348 * python/examples/example-client.py:
4349 * python/examples/example-service.py:
4351 Pass back return values from the service to the client.
4353 2003-09-24 Seth Nickell <seth@gnome.org>
4357 Connect Object methods (when you are sharing an object) up... pass
4358 in a list of methods to be shared. Sharing all the methods just
4359 worked out too weird. You can now create nice Services over the
4362 * python/dbus_bindings.pyx.in:
4364 Keep references to user_data tuples passed into C functions so
4365 Python doesn't garbage collect on us.
4367 Implement MethodReturn and Error subclasses of Message for creating
4368 DBusMessage's of those types.
4370 * python/examples/example-client.py:
4371 * python/examples/example-service.py:
4373 Simple example code showing both how create DBus services and objects,
4374 and how to use them.
4376 2003-09-23 Havoc Pennington <hp@pobox.com>
4378 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
4380 2003-09-23 Havoc Pennington <hp@redhat.com>
4382 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
4383 (dbus_gproxy_disconnect_signal): implement
4384 (dbus_gproxy_manager_remove_signal_match): implement
4385 (dbus_gproxy_manager_add_signal_match): implement
4386 (dbus_gproxy_oneway_call): implement
4388 2003-09-23 Havoc Pennington <hp@pobox.com>
4390 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
4391 subclass. This means dropping the transparent thread safety of the
4392 proxy; you now need a separate proxy per-thread, or your own
4393 locking on the proxy. Probably right anyway.
4394 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
4396 2003-09-22 Havoc Pennington <hp@redhat.com>
4398 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
4400 2003-09-21 Seth Nickell <seth@gnome.org>
4402 First checkin of the Python bindings.
4404 * python/.cvsignore:
4405 * python/Makefile.am:
4406 * python/dbus_bindings.pyx.in:
4407 * python/dbus_h_wrapper.h:
4409 Pieces for Pyrex to operate on, building a dbus_bindings.so
4410 python module for low-level access to the DBus APIs.
4414 High-level Python module for accessing DBus objects.
4419 Build stuff for the python bindings.
4423 Extra macro needed for finding the Python C header files.
4425 2003-09-21 Havoc Pennington <hp@pobox.com>
4427 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
4428 implementing the proxy manager, didn't get very far.
4430 * dbus/dbus-bus.c (dbus_bus_add_match): new
4431 (dbus_bus_remove_match): new
4433 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
4434 path_name argument; adjust the other not-yet-implemented
4435 gproxy constructors to be what I think they should be.
4437 2003-09-21 Havoc Pennington <hp@pobox.com>
4439 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
4440 by default for message bus connections.
4442 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
4443 exit_on_disconnect flag is set and we process the disconnected
4445 (dbus_connection_set_exit_on_disconnect): new function
4447 2003-09-21 Havoc Pennington <hp@pobox.com>
4449 Get matching rules mostly working in the bus; only actually
4450 parsing the rule text remains. However, the client side of
4451 "signal connections" hasn't been started, this patch is only the
4454 * dbus/dispatch.c: fix for the matching rules changes
4456 * bus/driver.c (bus_driver_handle_remove_match)
4457 (bus_driver_handle_add_match): send an ack reply from these
4460 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
4461 arguments, reported by Seth Nickell
4463 * bus/config-parser.c (append_rule_from_element): support
4464 eavesdrop=true|false attribute on policies so match rules
4465 can be prevented from snooping on the system bus.
4467 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
4468 and "destination" in attribute names; fix some docs bugs;
4469 add eavesdrop=true|false attribute
4471 * bus/driver.c (bus_driver_handle_add_match)
4472 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
4475 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
4476 rid of broadcast service concept, signals are just always broadcast
4478 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
4479 mostly implement matching rules stuff (currently only exposed as signal
4482 2003-09-21 Mark McLoughlin <mark@skynet.ie>
4484 * doc/dbus-specification.sgml: Change the header field name
4485 to be an enum and update the rest of the spec to reference
4486 the fields using the conventinal name.
4488 * dbus/dbus-protocol.h: update to reflect the spec.
4490 * doc/TODO: add item to remove the 4 byte alignment requirement.
4492 * dbus/dbus-message.c: Remove the code to generalise the
4493 header/body length and serial number header fields as named
4494 header fields so we can reference field names using the
4496 (append_int_field), (append_uint_field), (append_string_field):
4497 Append the field name as a byte rather than four chars.
4498 (delete_int_or_uint_field), (delete_string_field): reflect the
4499 fact that the field name and typecode now occupy 4 bytes instead
4501 (decode_string_field), (decode_header_data): update to reflect
4502 protocol changes and move the field specific encoding from
4503 decode_string_field() back into decode_header_data().
4505 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
4506 Add utility to aid debugging.
4508 * dbus/dbus-message-builder.c:
4509 (append_string_field), (_dbus_message_data_load): Update to
4510 reflect protocol changes; Change the FIELD_NAME directive
4511 to HEADER_FIELD and allow it to take the field's conventional
4512 name rather than the actual value.
4514 * test/data/*/*.message: Update to use HEADER_FIELD instead
4515 of FIELD_NAME; Always align the header on an 8 byte boundary
4516 *before* updating the header length.
4518 2003-09-15 Havoc Pennington <hp@pobox.com>
4520 * dbus/dbus-pending-call.c: add the get/set object data
4521 boilerplate as for DBusConnection, etc. Use generic object data
4522 for the notify callback.
4524 * glib/dbus-gparser.c (parse_node): parse child nodes
4526 * tools/dbus-viewer.c: more hacking on the dbus-viewer
4528 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
4529 contain functions shared between the convenience lib and the
4532 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
4533 -export-symbols-regex to the GLib library
4535 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
4536 fix the locking in here, and add a default handler for
4537 Introspect() that just returns sub-nodes.
4539 2003-09-14 Havoc Pennington <hp@pobox.com>
4541 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
4542 rather than gfoo consistent
4544 * glib/dbus-gproxy.h: delete for now, move contents to
4545 dbus-glib.h, because the include files don't work right since we
4546 aren't in the dbus/ subdir.
4548 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
4549 (dbus_gproxy_end_call): finish
4550 (dbus_gproxy_begin_call): finish
4552 * glib/dbus-gmain.c (dbus_set_g_error): new
4554 * glib/dbus-gobject.c (handle_introspect): include information
4555 about child nodes in the introspection
4557 * dbus/dbus-connection.c (dbus_connection_list_registered): new
4558 function to help in implementation of introspection
4560 * dbus/dbus-object-tree.c
4561 (_dbus_object_tree_list_registered_and_unlock): new function
4563 2003-09-12 Havoc Pennington <hp@pobox.com>
4565 * glib/dbus-gidl.h: add common base class for all the foo_info
4568 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
4571 * test/Makefile.am: try test srcdir -ef . in addition to test
4572 srcdir = ., one of them should work (yeah lame)
4574 * glib/Makefile.am: build the "idl" parser stuff as a convenience
4577 * glib/dbus-gparser.h: make description_load routines return
4578 NodeInfo* not Parser*
4580 * Makefile.am (SUBDIRS): build test dir after all library dirs
4582 * configure.in: add GTK+ detection
4584 2003-09-07 Havoc Pennington <hp@pobox.com>
4586 * Make Doxygen contented.
4588 2003-09-07 Havoc Pennington <hp@pobox.com>
4590 * doc/dbus-specification.sgml: more updates
4592 2003-09-06 Havoc Pennington <hp@pobox.com>
4594 * doc/dbus-specification.sgml: partial updates
4596 * bus/dbus-daemon-1.1.in: fix the config file docs for the
4597 zillionth time; hopefully I edited the right file this time.
4599 * bus/config-parser.c (append_rule_from_element): support
4600 send_type, send_path, receive_type, receive_path
4602 * bus/policy.c: add message type and path to the list of things
4603 that can be "firewalled"
4605 2003-09-06 Havoc Pennington <hp@pobox.com>
4607 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
4608 (dbus_connection_register_object_path): make this not handle
4609 messages to paths below the given path
4611 2003-09-03 Havoc Pennington <hp@pobox.com>
4613 * test/glib/Makefile.am: add this with random glib-linked test
4616 * glib/Makefile.am: remove the random test programs from here,
4617 leave only the unit tests
4619 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
4620 uscore/javacaps conversion, and fix
4621 (get_object_property, set_object_property): change to .NET
4622 convention for mapping props to methods, set_FooBar/get_FooBar,
4623 since one language has such a convention we may as well copy it.
4624 Plus real methods in either getFooBar or get_foo_bar style won't
4625 collide with this convention.
4627 2003-09-01 Havoc Pennington <hp@pobox.com>
4629 * glib/dbus-gparser.c: implement
4631 * glib/dbus-gobject.c: start implementing skeletons support
4633 * configure.in: when disabling checks/assert, also define
4634 G_DISABLE_ASSERT and G_DISABLE_CHECKS
4636 2003-09-01 Havoc Pennington <hp@pobox.com>
4638 * glib/Makefile.am: rearrange a bunch of files and get "make
4639 check" framework set up
4641 2003-08-31 Havoc Pennington <hp@pobox.com>
4643 * fix build with --disable-tests
4645 2003-08-30 Havoc Pennington <hp@pobox.com>
4647 * dbus/dbus-connection.c: purge DBusMessageHandler
4649 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
4650 use callbacks everywhere
4652 2003-08-30 Havoc Pennington <hp@pobox.com>
4654 * test/data/valid-config-files/system.d/test.conf: change to
4655 root for the user so warnings don't get printed
4657 * dbus/dbus-message.c: add dbus_message_get_path,
4658 dbus_message_set_path
4660 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
4661 dispatching to a path
4663 * dbus/dbus-string.c (_dbus_string_validate_path): add
4665 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
4666 (_dbus_marshal_object_path): implement
4668 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
4669 to contain the path to the target object
4670 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
4671 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
4673 2003-08-30 Havoc Pennington <hp@pobox.com>
4675 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
4677 2003-08-29 Havoc Pennington <hp@pobox.com>
4679 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
4681 (struct DBusObjectSubtree): shrink this
4682 a lot, since we may have a lot of them
4683 (_dbus_object_tree_free_all_unlocked): implement
4684 (_dbus_object_tree_dispatch_and_unlock): implement
4686 2003-08-29 Havoc Pennington <hp@pobox.com>
4688 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
4690 2003-08-28 Havoc Pennington <hp@pobox.com>
4694 * dbus/dbus-connection.c: port to no ObjectID, create a
4695 DBusObjectTree, rename ObjectTree to ObjectPath in public API
4697 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
4698 everything except UnregisterFunction and MessageFunction
4700 * dbus/dbus-marshal.c: port away from DBusObjectID,
4701 add DBUS_TYPE_OBJECT_PATH
4703 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
4704 dbus/dbus-objectid.[hc]: remove these, we are moving to
4705 path-based object IDs
4707 2003-08-25 Havoc Pennington <hp@pobox.com>
4709 Just noticed that dbus_message_test is hosed, I wonder when I
4710 broke that. I thought make check was passing earlier...
4712 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
4713 container tree, will replace most of dbus-object-registry
4715 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
4718 2003-08-19 Havoc Pennington <hp@pobox.com>
4720 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
4721 (dbus_message_is_error): fix this function
4723 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
4726 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
4727 reflect clarified man page
4728 (bus_client_policy_check_can_send): ditto
4730 * bus/session.conf.in: fixup
4732 * bus/system.conf.in: fixup
4734 2003-08-18 Havoc Pennington <hp@redhat.com>
4736 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
4738 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
4739 dumb bug created earlier (wrong order of args to
4740 decode_header_data())
4742 * tools/dbus-send.c: port
4744 * tools/dbus-print-message.c (print_message): port
4746 * test/data/*messages: port all messages over
4748 * dbus/dbus-message-builder.c: support including
4751 * bus/driver.c: port over
4753 * bus/dispatch.c: port over to new stuff
4755 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
4756 rename disconnect signal to "Disconnected"
4758 2003-08-17 Havoc Pennington <hp@pobox.com>
4760 This doesn't compile yet, but syncing up so I can hack on it from
4761 work. What are branches for if not broken code? ;-)
4763 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
4764 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
4765 DBUS_HEADER_FIELD_ERROR_NAME
4767 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
4768 for the interface+member pairs
4769 (string_hash): change to use g_str_hash algorithm
4770 (find_direct_function, find_string_function): refactor these to
4773 * dbus/dbus-message.c: port all of this over to support
4774 interface/member fields instead of name field
4776 * dbus/dbus-object-registry.c: port over
4778 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
4779 from _dbus_string_validate_name
4781 * bus/dbus-daemon-1.1: change file format for the
4782 <deny>/<allow> stuff to match new message naming scheme
4784 * bus/policy.c: port over
4786 * bus/config-parser.c: parse new format
4788 2003-08-16 Havoc Pennington <hp@pobox.com>
4790 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
4793 * glib/dbus-gproxy.c: some hacking
4795 2003-08-15 Havoc Pennington <hp@redhat.com>
4797 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
4799 * dbus/dbus-connection.c
4800 (dbus_connection_send_with_reply_and_block): factor out internals;
4801 change to convert any error replies to DBusError instead of
4802 returning them as a message
4804 2003-08-15 Havoc Pennington <hp@pobox.com>
4806 * dbus/dbus-connection.c,
4807 dbus/dbus-pending-call.c: Finish the pending call stuff
4809 2003-08-14 Havoc Pennington <hp@redhat.com>
4811 * dbus/dbus-pending-call.c: start on new object that will replace
4812 DBusMessageHandler and ReplyHandlerData for tracking outstanding
4815 * dbus/dbus-gproxy.c: start on proxy object used to communicate
4816 with remote interfaces
4818 * dbus/dbus-gidl.c: do the boring boilerplate in here
4820 2003-08-12 Havoc Pennington <hp@pobox.com>
4822 * bus/dispatch.c (bus_dispatch): make this return proper
4823 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
4825 * dbus/dbus-errors.c (dbus_set_error): use
4826 _dbus_string_append_printf_valist
4828 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
4829 (_dbus_string_append_printf): new
4831 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
4834 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
4835 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
4836 message is unhandled.
4838 2003-08-11 Havoc Pennington <hp@pobox.com>
4840 * bus/test.c (client_disconnect_handler): change to return
4841 HANDLED (would have been REMOVE_MESSAGE)
4843 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
4844 HANDLED/NOT_YET_HANDLED instead of
4845 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
4848 2003-08-10 Havoc Pennington <hp@pobox.com>
4850 * tools/dbus-send.c (main): add --type argument, for now
4851 supporting only method_call and signal types.
4853 * tools/dbus-print-message.c: print message type
4855 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
4856 init connection->objects
4858 * doc/dbus-specification.sgml: fix sgml
4860 * bus/*.c: port over to object-instance API changes
4862 * test/test-service.c: ditto
4864 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
4865 name, we will have to fix up the rest of the code to also handle
4867 (dbus_message_new): generic message-creation call
4868 (set_string_field): allow appending name field
4870 2003-08-06 Havoc Pennington <hp@pobox.com>
4872 * dbus/dbus-object-registry.c: implement signal connection
4875 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
4877 * dbus/dbus-internals.c (_dbus_memdup): new function
4879 2003-08-02 Havoc Pennington <hp@pobox.com>
4881 * dbus/dbus-message.c (dbus_message_get_no_reply)
4882 (dbus_message_set_no_reply): add these and remove
4883 set_is_error/get_is_error
4885 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
4886 remove the ERROR flag, since there's now an ERROR type
4888 2003-08-01 Havoc Pennington <hp@pobox.com>
4890 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
4893 * dbus/dbus-message.c (dbus_message_get_type): new function
4895 * doc/dbus-specification.sgml: add "type" byte to messages
4897 2003-08-01 Havoc Pennington <hp@pobox.com>
4899 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
4900 a message type enum to distinguish kinds of message
4901 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
4902 that need not be replied to
4904 2003-08-01 Havoc Pennington <hp@pobox.com>
4906 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
4907 (unpack_8_octets): fix no-64-bit-int bug
4909 * dbus/dbus-object-registry.c (validate_id): validate the
4910 connection ID bits, not just the instance ID.
4912 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
4913 the connection-global 33 bits of the object ID
4915 * dbus/dbus-object-registry.c (info_from_entry): fill in
4916 object ID in the new way
4918 * dbus/dbus-objectid.h: rather than high/low bits, specifically
4919 define server/client/instance bits.
4921 2003-07-30 Havoc Pennington <hp@pobox.com>
4923 * dbus/dbus-connection.c (dbus_connection_register_object): fix
4926 2003-07-13 Havoc Pennington <hp@pobox.com>
4928 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
4929 fields to DBusObjectVTable and DBusObjectInfo
4931 2003-07-12 Havoc Pennington <hp@pobox.com>
4933 * dbus/dbus-object-registry.c: implement unit test,
4934 fix bugs discovered in process
4936 * dbus/dbus-connection.c: remove handler_table and
4937 register_handler(), add DBusObjectRegistry usage
4939 * dbus/dbus-objectid.c (dbus_object_id_is_null)
4940 (dbus_object_id_set_null): new functions
4942 2003-07-08 Havoc Pennington <hp@pobox.com>
4944 * dbus/dbus-object.c: implement some of this
4946 * dbus/dbus-object-registry.c
4947 (_dbus_object_registry_add_and_unlock): fill in the object_id out
4949 (_dbus_object_registry_new): handle OOM
4951 2003-07-08 Havoc Pennington <hp@pobox.com>
4953 * dbus/dbus-object.h: sketch out an API for registering objects
4954 with a connection, that allows us to use as little as 24 bytes
4955 per object and lets application code represent an object in
4956 any conceivable way.
4958 * dbus/dbus-object-registry.c: implement the hard bits of the
4959 DBusConnection aspect of object API. Not yet wired up.
4961 2003-07-06 Havoc Pennington <hp@pobox.com>
4963 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
4964 (_dbus_marshal_object_id): new
4965 (_dbus_demarshal_object_id): new
4966 (_dbus_marshal_get_arg_end_pos): support object ID type, and
4967 consolidate identical switch cases. Don't conditionalize handling
4968 of DBUS_TYPE_UINT64, need to handle the type always.
4969 (_dbus_marshal_validate_arg): consolidate identical cases, and
4970 handle DBUS_TYPE_OBJECT_ID
4972 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
4974 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
4976 2003-09-28 Havoc Pennington <hp@pobox.com>
4980 2003-09-28 Havoc Pennington <hp@pobox.com>
4982 * doc/Makefile.am (dbus-specification.html): testing a funky hack
4983 to work with Debian db2html
4985 2003-09-28 Havoc Pennington <hp@pobox.com>
4987 * configure.in: 0.13
4989 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
4990 stylesheet-images for benefit of Debian
4992 Change back to using filesystem-linked sockets for the system
4993 bus, so only root can create the default system bus address.
4995 * bus/system.conf.in: change to use
4996 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
4998 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
5001 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
5002 here, and AC_DEFINE DBUS_SYSTEM_PATH
5004 2003-08-09 Anders Carlsson <andersca@codefactory.se>
5007 * doc/busconfig.dtd:
5010 2003-08-09 Anders Carlsson <andersca@codefactory.se>
5012 * doc/dbus-specification.sgml:
5013 Add activation reply values.
5015 2003-08-05 Havoc Pennington <hp@redhat.com>
5017 * configure.in: 0.12
5019 2003-08-05 Anders Carlsson <andersca@codefactory.se>
5021 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
5022 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
5023 (add_watch), (remove_watch), (create_source):
5024 Refcount fds, fixes some reentrancy issues.
5026 2003-07-30 Havoc Pennington <hp@redhat.com>
5028 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
5029 bus address to be abstract if we have abstract sockets
5033 2003-07-28 Havoc Pennington <hp@redhat.com>
5035 * bus/messagebus.in: fix to avoid processname/servicename
5036 confusion, from Michael Kearey
5037 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
5039 2003-07-23 Havoc Pennington <hp@pobox.com>
5041 * dbus/dbus-message.c (dbus_message_iter_get_named):
5042 fix from Andy Hanton to remove broken "+1"
5044 2003-07-16 Havoc Pennington <hp@pobox.com>
5046 * tools/dbus-launch.c (babysit): close stdout/stderr in the
5047 babysitter process, as suggested by Thomas Leonard, so
5048 an "eval `dbus-launch --exit-with-session`" will actually
5051 2003-07-16 Havoc Pennington <hp@pobox.com>
5053 * configure.in: print out EXPANDED_* variables in the summary at
5054 the end; clean up the code that computes EXPANDED_ variables and
5055 get the ones using exec_prefix right. Should make things work
5056 when you build without --prefix
5058 2003-06-29 Havoc Pennington <hp@pobox.com>
5060 * mono/Test.cs (class Test): fire up a main loop and run it
5062 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
5063 done once, the app has to do it
5065 2003-06-26 Havoc Pennington <hp@pobox.com>
5067 * mono/Connection.cs: set up connection with the glib main loop
5069 2003-07-01 Havoc Pennington <hp@redhat.com>
5071 * doc/dbus-specification.sgml: clarify the format of a type code,
5072 change suggested by Jim Blandy
5074 2003-06-29 Miloslav Trmac <mitr@volny.cz>
5077 * tools/Makefile.am: Don't assume srcdir == builddir.
5079 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
5080 the allocated block.
5081 (_dbus_memory_test): New function.
5082 * dbus/dbus-test.h: Add _dbus_memory_test ().
5083 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
5085 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
5087 (dbus_message_new): Remove obsolete @todo.
5089 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
5090 (_dbus_marshal_set_uint64): Fix comment.
5092 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
5093 hardcode FIELD_REPLY_SERIAL.
5095 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
5096 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
5098 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
5099 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
5101 2003-06-24 Havoc Pennington <hp@pobox.com>
5103 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
5105 2003-06-23 Anders Carlsson <andersca@codefactory.se>
5111 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
5112 * gcj/org/.cvsignore:
5113 * gcj/org/Makefile.am:
5114 * gcj/org/freedesktop/.cvsignore:
5115 * gcj/org/freedesktop/Makefile.am:
5116 * gcj/org/freedesktop/dbus/.cvsignore:
5117 * gcj/org/freedesktop/dbus/Makefile.am:
5118 * gcj/org/freedesktop/dbus/Message.java: (Message),
5120 * gcj/org/freedesktop/dbus/natMessage.cc:
5121 Fix the build system.
5123 2003-06-22 Havoc Pennington <hp@pobox.com>
5125 * mono/Connection.cs: add more bindings
5127 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
5130 2003-06-22 Havoc Pennington <hp@pobox.com>
5132 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
5133 Start wrapping more stuff.
5135 2003-06-22 Havoc Pennington <hp@pobox.com>
5137 * mono/Message.cs: implement Message.Wrap() that ensures we only
5138 have a single C# wrapper per DBusMessage, assuming it works which
5139 it probably doesn't.
5141 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
5142 (dbus_message_free_data_slot): new
5143 (dbus_message_set_data): new
5144 (dbus_message_get_data): new
5146 2003-06-22 Havoc Pennington <hp@pobox.com>
5148 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
5149 (_dbus_data_slot_allocator_alloc): rework these to keep a
5150 reference count on each slot and automatically manage a global
5151 slot ID variable passed in by address
5153 * bus/bus.c: convert to new dataslot API
5155 * dbus/dbus-bus.c: convert to new dataslot API
5157 * dbus/dbus-connection.c: convert to new dataslot API
5159 * dbus/dbus-server.c: convert to new dataslot API
5161 * glib/dbus-gmain.c: ditto
5165 * bus/connection.c: ditto
5167 2003-06-22 Anders Carlsson <andersca@codefactory.se>
5169 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
5170 after the gcj checks so that the correct configuration tags
5171 will be added to libtool.
5173 * dbus-glib-1.pc.in: No need to specify any includes since
5174 dbus-1.pc.in has those.
5176 2003-06-22 Havoc Pennington <hp@pobox.com>
5178 * mono/*, gcj/*, configure.in, Makefile.am:
5179 Check in makefiles and subdirs for mono and gcj bindings.
5180 Neither binding actually exists, just trying to get through
5181 all the build and other boring bits.
5183 2003-06-21 Philip Blundell <philb@gnu.org>
5185 * tools/dbus-monitor.1: Updated.
5187 * tools/dbus-send.1: Likewise.
5189 2003-06-20 Anders Carlsson <andersca@codefactory.se>
5191 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
5192 for hangup and error after checking read so we won't discard
5193 pending data if both hangup and read are set.
5195 2003-06-19 Philip Blundell <philb@gnu.org>
5197 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
5199 * tools/dbus-send.c: Accept both --system and --session.
5201 * tools/dbus-monitor.c: Same here.
5203 2003-06-19 Anders Carlsson <andersca@codefactory.se>
5205 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
5206 from C++ (Patch by Miloslav Trmac).
5208 2003-06-15 Joe Shaw <joe@assbarn.com>
5210 * configure.in: Check for socklen_t.
5212 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
5214 * test/test-segfault.c: Add #include <sys/time.h>
5216 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
5217 dbus-launch needs it.
5219 2003-06-09 Havoc Pennington <hp@redhat.com>
5221 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
5222 SUN_LEN, it breaks abstract socket usage
5224 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
5227 2003-06-04 Havoc Pennington <hp@pobox.com>
5229 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
5230 using unix:abstract=/foo, and when listening in a tmpdir
5231 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
5233 * dbus/dbus-transport.c (_dbus_transport_open): support
5236 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
5237 support abstract sockets
5239 * dbus/dbus-transport-unix.c
5240 (_dbus_transport_new_for_domain_socket): support abstract sockets
5242 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
5243 toggle as an argument, implement abstract namespace support
5244 (_dbus_listen_unix_socket): ditto
5246 * configure.in: add --enable-abstract-sockets and implement
5247 a configure check for autodetection of the right value.
5249 2003-06-01 Havoc Pennington <hp@pobox.com>
5251 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
5252 in /tmp (though on Linux this will end up being useless,
5253 when we add abstract namespace support)
5255 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
5258 2003-05-28 Colin Walters <walters@verbum.org>
5260 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
5262 2003-05-18 Anders Carlsson <andersca@codefactory.se>
5264 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
5266 2003-05-17 Colin Walters <walters@gnu.org>
5268 * tools/dbus-send.c: Don't exit with an error code if --help was
5269 passed. Default to using the session bus instead of the system
5272 * tools/dbus-launch.c: Ditto.
5274 * tools/dbus-monitor.c: Ditto.
5276 * tools/dbus-send.1: Update with new arguments.
5278 * tools/dbus-launch.c: Emit code to export variables. New
5279 arguments -s and -c to specify shell syntax, and a bit of code to
5280 autodetect syntax. Also, allow specifying a program to run.
5282 * tools/dbus-launch.1: Update with new arguments.
5284 * tools/dbus-send.1: Ditto.
5286 * tools/dbus-monitor.1: Ditto.
5288 2003-05-17 Havoc Pennington <hp@pobox.com>
5290 * bus/config-parser.c (merge_included): merge in policies from
5291 child configuration file.
5293 * bus/policy.c (bus_policy_merge): function to merge two policies
5296 2003-05-16 Havoc Pennington <hp@redhat.com>
5298 * dbus/dbus-connection.c: disable verbose lock spew
5300 * tools/dbus-send.c: add --print-reply command line option
5302 * tools/dbus-print-message.h (print_message): new util function
5303 shared by dbus-send and dbus-monitor
5305 * tools/dbus-monitor.c (handler_func): exit on disconnect
5307 * dbus/dbus-transport-unix.c (do_reading): if the transport is
5308 disconnected, don't try to use the read_watch
5310 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
5311 so we can find this bug more easily
5313 2003-05-16 Havoc Pennington <hp@redhat.com>
5315 * bus/policy.c (free_rule_list_func): avoid a crash when passed
5316 NULL as DBusHashTable is annoyingly likely to do.
5318 2003-05-16 Colin Walters <walters@verbum.org>
5320 * tools/dbus-monitor.c: Add --session argument and usage()
5323 * tools/dbus-monitor.1: Update with new --session arg.
5325 * bus/Makefile.am (install-data-hook): Create
5326 $(libdir)/dbus-1.0/services so that the session bus is happy.
5328 2003-05-15 Havoc Pennington <hp@redhat.com>
5330 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
5331 on non-x86. ifdef's are evil.
5333 2003-05-15 Havoc Pennington <hp@redhat.com>
5335 * configure.in: 0.11
5339 * bus/Makefile.am (initddir): apparently we are supposed to put
5340 init scripts in /etc/rc.d/init.d not /etc/init.d
5342 * bus/Makefile.am: remove the "you must --enable-tests to make
5343 check" as it broke distcheck
5345 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
5347 2003-05-13 James Willcox <jwillcox@gnome.org>
5350 * bus/activation.c: (bus_activation_service_created),
5351 (bus_activation_activate_service):
5352 * bus/driver.c: (bus_driver_send_service_deleted),
5353 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5354 (bus_driver_send_service_acquired),
5355 (bus_driver_send_welcome_message),
5356 (bus_driver_handle_list_services):
5357 * bus/session.conf.in:
5358 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
5359 (dbus_bus_service_exists), (dbus_bus_activate_service):
5362 Add some convenience API which lets you activate a service, and did a
5363 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
5364 and dbus_message_get_args()
5366 2003-05-11 Havoc Pennington <hp@pobox.com>
5368 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
5369 calling _dbus_marshal_validate_arg() for every byte in a byte
5372 * dbus/dbus-message-handler.c: use atomic reference counting to
5373 reduce number of locks slightly; the global lock in here sucks
5375 * dbus/dbus-connection.c
5376 (_dbus_connection_update_dispatch_status_and_unlock): variant of
5377 update_dispatch_status that can be called with lock held; then use
5378 in a couple places to reduce locking/unlocking
5379 (dbus_connection_send): hold the lock over the whole function
5380 instead of acquiring it twice.
5382 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
5384 * bus/connection.c (bus_connections_setup_connection): fix access
5385 to already-freed memory.
5387 * dbus/dbus-connection.c: keep a little cache of linked list
5388 nodes, to avoid using the global linked list alloc lock in the
5389 normal send-message case. Instead we just use the connection lock
5390 that we already have to take.
5392 * dbus/dbus-list.c (_dbus_list_find_last): new function
5394 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
5395 change to use a struct for the atomic type; fix docs,
5396 they return value before increment, not after increment.
5398 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
5399 (_dbus_string_append_8_aligned): new functions to try to
5400 microoptimize this operation.
5401 (reallocate_for_length): break this out of set_length(), to
5402 improve profile info, and also so we can consider inlining the
5405 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
5406 strings with some preallocation, cuts down on our calls to realloc
5407 a fair bit. Though if we can get the "move entire string to empty
5408 string" optimization below to kick in here, it would be better.
5410 * dbus/dbus-string.c (_dbus_string_move): just call
5411 _dbus_string_move_len
5412 (_dbus_string_move_len): add a special case for moving
5413 an entire string into an empty string; we can just
5414 swap the string data instead of doing any reallocs.
5415 (_dbus_string_init_preallocated): new function
5417 2003-05-11 Havoc Pennington <hp@pobox.com>
5419 Write a "test-profile" that does echo client-server with threads;
5420 profile reveals lock contention, memcpy/realloc of buffers, and
5421 UTF-8 validation as hot spots. 20% of lock contention eliminated
5422 with dbus_atomic_inc/dec implementation on x86. Much remaining
5423 contention is global mempool locks for GList and DBusList.
5425 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
5428 * dbus/dbus-connection.c (struct DBusConnection): use
5429 dbus_atomic_t for the reference count
5431 * dbus/dbus-message.c (struct DBusMessage): declare
5432 dbus_atomic_t values as volatile
5434 * configure.in: code to detect ability to use atomic integer
5435 operations in assembly, from GLib patch
5437 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
5438 time, tired of it being wrong in threads and forked processes
5440 * glib/test-profile.c: a little program to bounce messages back
5441 and forth between threads and eat CPU
5443 * dbus/dbus-connection.c: add debug spew macros for debugging
5444 thread locks; include config.h at top; fix deadlock in
5445 dbus_connection_flush()
5447 2003-05-08 Havoc Pennington <hp@pobox.com>
5449 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
5450 data from getting written, and there wasn't a good reason to
5453 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
5454 dbus_verbose lines in test coverage
5455 (main): add list of functions sorted by # of untested blocks
5456 to the coverage report
5458 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
5460 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
5462 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
5463 extend test coverage
5465 * test/data/auth/cancel.auth-script: test canceling an
5468 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
5469 aren't used. in CVS history if we end up needing them.
5471 2003-05-04 Havoc Pennington <hp@pobox.com>
5473 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
5476 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
5477 function, which assumed length was in # of strings, not bytes
5479 * dbus/dbus-message.c (_dbus_message_test): add tests for some
5482 * dbus/dbus-connection.c
5483 (_dbus_connection_queue_received_message): disable function for
5484 now, we are only using it in test mode
5486 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
5487 remove a mistaken FIXME
5489 2003-05-04 Havoc Pennington <hp@pobox.com>
5491 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
5492 unlock mutex on successful return, patch from Anders Gustafsson
5494 2003-05-04 Havoc Pennington <hp@pobox.com>
5496 * dbus-glib-1.pc.in (Requires): fix dependencies, from
5499 2003-05-04 Havoc Pennington <hp@pobox.com>
5501 * tools/dbus-launch.c: implement
5503 * bus/main.c (main), bus/bus.c (bus_context_new):
5504 implement --print-pid and --fork
5506 2003-05-03 Havoc Pennington <hp@redhat.com>
5508 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
5509 the address had no value, and add to test suite. Fix and
5510 regression test from Miloslav Trmac
5512 2003-05-03 Havoc Pennington <hp@pobox.com>
5514 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
5515 watch is invalid when handled
5517 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
5518 dbus-launch utility to launch the bus from a shell script. Didn't
5519 actually implement dbus-launch yet, it's just a placeholder still.
5521 2003-05-03 Havoc Pennington <hp@pobox.com>
5523 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
5524 daemon; also documents daemon config file, so replaces
5525 doc/config-file.txt. Corrected some stuff from config-file.txt in
5526 the process of moving it.
5528 2003-05-03 Havoc Pennington <hp@pobox.com>
5530 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
5533 2003-05-03 Colin Walters <walters@verbum.org>
5535 * dbus/dbus-sysdeps.c (fill_user_info): Test against
5536 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
5538 * Makefile.am: Update to use new .pc versioning scheme.
5540 2003-05-02 Havoc Pennington <hp@redhat.com>
5542 * bus/system.conf.in: allow send/receive to/from message bus
5545 2003-04-30 Havoc Pennington <hp@redhat.com>
5547 * configure.in: print a note when building with unit tests and
5550 2003-04-30 Havoc Pennington <hp@redhat.com>
5552 * Makefile.am: add a check-local that complains if you didn't
5553 configure with --enable-tests
5555 2003-04-29 Havoc Pennington <hp@redhat.com>
5557 * glib/dbus-gmain.c: docs cleanups
5559 * dbus/dbus-types.h: add docs on int64 types
5561 * dbus/dbus-memory.c: fix docs to avoid putting private API in
5562 public API docs section
5564 2003-04-29 Havoc Pennington <hp@redhat.com>
5566 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
5567 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
5568 parallel install API version, not with the D-BUS package version.
5570 * HACKING: move some of README over here
5572 * README: updates, and document API/ABI policy
5574 * configure.in: reindentation
5576 2003-04-29 Havoc Pennington <hp@redhat.com>
5578 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
5579 to use this library" to be sure people have the right
5582 2003-04-28 Havoc Pennington <hp@redhat.com>
5584 * configure.in: add --enable-docs which by default is auto yes if
5585 doxygen and db2html found, no otherwise; but can be forced on/off
5587 * doc/Makefile.am: conditionalize whether to build docs on
5590 2003-04-28 Havoc Pennington <hp@redhat.com>
5592 * configure.in: 0.10
5596 * bus/system.conf.in: add <includedir>system.d</includedir>
5598 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
5599 username was provided but not uid
5601 * bus/config-parser.c (struct BusConfigParser): keep track of
5602 whether the parser is toplevel or was included; change some
5603 of the error handling if it's included.
5605 2003-04-27 Havoc Pennington <hp@pobox.com>
5609 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
5610 report correct status if we finish processing authentication
5611 inside this function.
5613 * bus/activation.c (try_send_activation_failure): use
5614 bus_transaction_send_error_reply
5616 * bus/connection.c (bus_connection_get_groups): return an error
5617 explaining the problem
5619 * bus/bus.c (bus_context_check_security_policy): implement
5620 restriction here that inactive connections can only send the
5621 hello message. Also, allow bus driver to send anything to
5624 * bus/connection.c (bus_connection_complete): create the
5625 BusClientPolicy here instead of on-demand.
5626 (bus_connection_get_policy): don't return an error
5628 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
5629 sender field in message being replied to
5631 * bus/bus.c (bus_context_check_security_policy): fix silly typo
5632 causing it to return FALSE always
5634 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
5635 we checked sender rather than destination
5637 2003-04-25 Havoc Pennington <hp@redhat.com>
5639 test suite is slightly hosed at the moment, will fix soon
5641 * bus/connection.c (bus_connections_expire_incomplete): fix to
5642 properly disable the timeout when required
5643 (bus_connection_set_name): check whether we can remove incomplete
5644 connections timeout after we complete each connection.
5646 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
5647 probably still broken.
5649 * bus/services.c (bus_registry_acquire_service): implement max
5650 number of services owned, and honor allow/deny rules on which
5651 services a connection can own.
5653 * bus/connection.c (bus_connection_get_policy): report errors here
5655 * bus/activation.c: implement limit on number of pending
5658 2003-04-25 Havoc Pennington <hp@redhat.com>
5660 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
5661 where we used >= 0 instead of != DBUS_UID_UNSET.
5663 2003-04-25 Havoc Pennington <hp@redhat.com>
5665 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
5666 were toggled without add/remove, fix from Anders Gustafsson
5668 2003-04-24 Havoc Pennington <hp@redhat.com>
5670 * test/data/valid-config-files/basic.conf: add <limit> tags to
5673 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
5674 <limit> tag in configuration file.
5676 2003-04-24 Havoc Pennington <hp@redhat.com>
5678 * bus/dispatch.c: somehow missed some name_is
5680 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
5681 (_dbus_timeout_set_interval): new
5683 * bus/connection.c (bus_connections_setup_connection): record time
5684 when each connection is first set up, and expire them after the
5685 auth timeout passes.
5687 2003-04-24 Havoc Pennington <hp@redhat.com>
5689 * dbus/dbus-message.c (dbus_message_name_is): rename
5690 (dbus_message_service_is): rename
5691 (dbus_message_sender_is): rename
5692 (dbus_message_get_service): rename
5694 2003-04-24 Havoc Pennington <hp@redhat.com>
5696 * configure.in: add --enable-checks
5698 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
5700 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
5701 to use thread locks.
5702 (_dbus_connection_handler_destroyed_locked): move some private
5703 functions into proper docs group
5705 * dbus/dbus-internals.h: add _dbus_return_if_fail,
5706 _dbus_return_val_if_fail
5708 Throughout: use dbus_return_if_fail
5710 2003-04-23 James Willcox <jwillcox@gnome.org>
5713 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
5714 (dbus_connection_setup_with_g_main),
5715 (dbus_server_setup_with_g_main):
5716 * glib/test-dbus-glib.c: (main):
5717 * glib/test-thread-client.c: (main):
5718 * glib/test-thread-server.c: (new_connection_callback), (main):
5719 * tools/dbus-monitor.c: (main):
5721 Added a GMainContext argument to dbus_connection_setup_with_g_main()
5722 and dbus_server_setup_with_g_main().
5724 2003-04-20 Havoc Pennington <hp@pobox.com>
5726 * doc/dbus-specification.sgml: document the restrictions on
5727 message and service names
5729 2003-04-22 Havoc Pennington <hp@redhat.com>
5731 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
5732 support, and do some code cleanups to share more code and
5733 speed up array marshal/demarshal.
5735 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
5737 * configure.in: generate dbus-arch-deps.h
5739 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
5742 2003-04-22 Havoc Pennington <hp@redhat.com>
5744 * test/data/valid-messages/opposite-endian.message: fix test
5745 to use proper type for rply field
5747 * test/data/invalid-messages: add tests for below validation
5749 * dbus/dbus-message.c (decode_header_data): validate field types,
5750 and validate that named fields are valid names
5751 (decode_name_field): consider messages in the
5752 org.freedesktop.Local. namespace to be invalid.
5754 * dbus/dbus-string.c (_dbus_string_validate_name): new
5756 2003-04-19 Havoc Pennington <hp@pobox.com>
5758 * bus/driver.c (bus_driver_handle_hello): check limits and
5759 return an error if they are exceeded.
5761 * bus/connection.c: maintain separate lists of active and inactive
5762 connections, and a count of each. Maintain count of completed
5763 connections per user. Implement code to check connection limits.
5765 * dbus/dbus-list.c (_dbus_list_unlink): export
5767 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
5768 number of bytes in the message queue for a connection
5770 2003-04-18 Havoc Pennington <hp@pobox.com>
5772 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
5774 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
5777 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
5778 on realloc be sure to update the pointer in the keyring
5780 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
5781 offset to avoid writing to unallocated memory
5783 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
5784 try the next mechanism, so we properly handle OOM
5786 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
5788 (_dbus_keyring_new): fix OOM bug
5789 (_dbus_keyring_new_homedir): always set error; impose a maximum
5790 number of keys we'll load from the file, mostly to speed up the
5791 test suite and make its OOM checks more useful, but also for
5794 * dbus/dbus-auth.c (process_error_server): reject authentication
5795 if we get an error from the client
5796 (process_cancel): on cancel, send REJECTED, per the spec
5797 (process_error_client): send CANCEL if we get an error from the
5800 2003-04-18 Havoc Pennington <hp@pobox.com>
5802 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
5805 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
5808 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
5809 about DBUS_TEST_HOMEDIR once
5811 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
5814 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
5815 config file so we test the right thing
5817 Throughout: assorted docs improvements
5819 2003-04-18 Havoc Pennington <hp@pobox.com>
5821 * glib/dbus-gmain.c: adapt to watch changes
5823 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
5825 * dbus/dbus-server.h: remove dbus_server_handle_watch
5827 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
5829 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
5830 like DBusTimeout, so we don't need dbus_connection_handle_watch
5833 2003-04-17 Havoc Pennington <hp@redhat.com>
5835 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
5836 database usage so it all goes via the DBusUserDatabase cache.
5838 2003-04-17 Havoc Pennington <hp@redhat.com>
5840 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
5841 there was an OOM watch we skipped, we always return TRUE so we
5842 iterate again to have a look at it again. Fixes test suite hang.
5843 Code rearrangement also lets us lose some memset and only iterate
5844 over callbacks once.
5846 * bus/driver.c (bus_driver_handle_message): sense of test for
5849 2003-04-16 Havoc Pennington <hp@pobox.com>
5851 * doc/dbus-specification.sgml: make spec say serials are unsigned
5853 * dbus/dbus-message.h: change message serials to unsigned
5855 * dbus/dbus-connection.c: adapt to message serials being unsigned
5857 2003-04-15 Havoc Pennington <hp@pobox.com>
5859 * bus/bus.c: create and keep around a shared DBusUserDatabase
5862 * bus/connection.c (bus_connection_get_groups): don't cache
5863 groups for user in the connection object, since user database
5864 object now does that.
5866 2003-04-16 Havoc Pennington <hp@redhat.com>
5868 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
5869 list of size counters
5870 (_dbus_message_loader_putback_message_link): put back a popped link
5872 * dbus/dbus-connection.c
5873 (dbus_connection_set_max_live_messages_size): rename
5875 (dbus_connection_get_outgoing_size): get size of outgoing
5877 (_dbus_connection_set_connection_counter): remove this cruft
5879 2003-04-14 Havoc Pennington <hp@redhat.com>
5881 * dbus/dbus-userdb.c: user database abstraction, mostly to get
5882 caching, but at some point we might want to be able to use a
5885 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
5886 SHA1 conf file to test the sha1 auth mechanism, since the regular
5887 test always uses EXTERNAL when available.
5890 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
5891 add conf file that requires use of sha1 auth
5893 2003-04-13 Havoc Pennington <hp@pobox.com>
5895 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
5896 from Philip Blundell to send messages and monitor them.
5898 2003-04-13 Havoc Pennington <hp@pobox.com>
5900 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
5903 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
5906 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
5907 fix to only recover unused bytes if we're already authenticated
5908 (_dbus_transport_get_is_authenticated): fix to still mark us
5909 authenticated if there are unused bytes.
5911 * bus/dispatch.c: implement security policy checking
5913 * bus/connection.c (bus_transaction_send_from_driver): new
5915 * bus/bus.c (bus_context_check_security_policy): new
5917 * bus/dispatch.c (send_service_nonexistent_error): delete this,
5918 now we just set the DBusError and it gets converted to an error
5921 * bus/connection.c (allow_user_function): enable code using actual
5922 data from the config file
5924 * bus/policy.c (list_allows_user): handle wildcard rules for
5925 user/group connection perms
5927 2003-04-13 Havoc Pennington <hp@pobox.com>
5929 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
5931 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
5933 * bus/policy.c (bus_policy_append_mandatory_rule)
5934 (bus_policy_append_default_rule, bus_policy_append_user_rule)
5935 (bus_policy_append_group_rule): new functions
5937 2003-04-12 Havoc Pennington <hp@pobox.com>
5939 * bus/config-parser.c (bus_config_parser_new): fix a memleak
5941 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
5942 the pid/gid/uid, just for paranoia.
5944 * test/break-loader.c (randomly_do_n_things): find a byte
5945 containing a type code, and randomly change it to a different
5948 2003-04-12 Havoc Pennington <hp@pobox.com>
5950 * bus/policy.h: change BusPolicy to be the thing from the config
5951 file, and rename old BusPolicy to BusClientPolicy
5953 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
5954 match change in how policy works
5956 * dbus/dbus-internals.h: mark assert_not_reached as
5957 __attribute((noreturn))__
5959 2003-04-11 Havoc Pennington <hp@redhat.com>
5961 * doc/dbus-specification.sgml: fix a spot with the wrong name for
5962 the broadcast service. Use boolean return for ServiceExists.
5964 2003-04-11 Havoc Pennington <hp@redhat.com>
5966 * configure.in: add another directory to look for qt in.
5968 2003-04-11 Havoc Pennington <hp@redhat.com>
5970 * AUTHORS: add Colin Walters
5972 2003-04-11 Havoc Pennington <hp@redhat.com>
5978 2003-04-11 Havoc Pennington <hp@redhat.com>
5980 * bus/messagebus.in: remove pid file when stopping the
5981 message bus, since the bus won't have privileges to remove it
5984 2003-04-11 Havoc Pennington <hp@redhat.com>
5986 * bus/bus.c (bus_context_new): move credentials change after
5989 2003-04-11 Havoc Pennington <hp@pobox.com>
5991 * test/decode-gcov.c: add "below average functions" to the
5992 coverage report, and change how some of the code works.
5994 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
5995 not in the coverage stats.
5997 * test/test-service.c (main): use _dbus_verbose not fprintf in a
5998 couple places so running the test suite doesn't result in megaspam.
6000 2003-04-11 Havoc Pennington <hp@pobox.com>
6002 * bus/dispatch.c (check_existent_service_activation): accept a no
6003 memory error in a place we didn't before
6005 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
6006 in case the first one failed," since the test suite is less
6009 2003-04-10 Havoc Pennington <hp@pobox.com>
6011 * bus/dispatch.c (check_segfault_service_activation): add test
6012 for launching an executable that just crashes.
6014 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
6015 don't leave a million cores. We'll see how portable this is.
6017 2003-04-10 Havoc Pennington <hp@pobox.com>
6019 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
6020 the possible parent failures before we fork, so that we don't
6021 fail to create a babysitter after creating the child.
6023 * bus/activation.c (bus_activation_activate_service): kill child
6024 if we don't successfully complete the activation.
6026 2003-04-10 Havoc Pennington <hp@redhat.com>
6028 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
6029 the connection if it's disconnected
6031 * bus/activation.c (bus_activation_service_created): use new
6032 transaction features to roll back removal of pending activation if
6033 we don't successfully create the service after all. Don't remove
6034 pending activation if the function fails.
6036 * dbus/dbus-list.c (_dbus_list_insert_before_link)
6037 (_dbus_list_insert_after_link): new code to facilitate
6040 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
6041 new functionality, so we can preallocate the ability to insert
6044 * bus/connection.c (bus_transaction_add_cancel_hook): new function
6045 allowing us to put custom hooks in a transaction to be used for
6046 cancelling said transaction
6048 * doc/dbus-specification.sgml: add some discussion of secondary
6049 service owners, and disallow zero-length service names
6051 * bus/services.c (bus_registry_acquire_service): new function,
6052 splits out part of bus_driver_handle_acquire_service() and fixes
6053 a bug where we didn't remove the service doing the acquiring
6054 from the secondary queue if we failed to remove the current owner
6055 from the front of the queue.
6057 2003-04-10 Alexander Larsson <alexl@redhat.com>
6059 * doc/dbus-specification.sgml:
6060 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
6062 2003-04-10 Alexander Larsson <alexl@redhat.com>
6067 Added files to cvsignore
6069 * dbus/dbus-message.h:
6070 * dbus/dbus-message.c: (dbus_message_iter_get_named):
6071 Make get_named() take two out argument and return a boolean.
6072 (dbus_message_iter_get_args_valist):
6073 Update usage of get_named().
6074 (dbus_message_iter_append_byte):
6076 (dbus_message_iter_append_named)
6078 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
6081 2003-04-10 Alexander Larsson <alexl@redhat.com>
6083 * dbus/dbus-marshal.[ch]:
6084 Add array_type_pos argument to _dbus_marshal_validate_arg.
6085 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
6087 * dbus/dbus-message.[ch]:
6088 Multi-dimensional arrays have full type specification in the
6089 outermost array. Iter code re-arranged to handle this.
6090 Added some more iter tests.
6092 * doc/dbus-specification.sgml:
6095 Update new array encoding description.
6096 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
6098 * test/data/invalid-messages/array-with-mixed-types.message:
6099 * test/data/valid-messages/array-of-array-of-uint32.message:
6100 Change to the new array format.
6102 * test/data/invalid-messages/too-short-dict.message:
6105 * test/data/valid-messages/recursive-types.message:
6106 Fix up and extend test.
6108 2003-04-10 Havoc Pennington <hp@pobox.com>
6110 * bus/dispatch.c: lots of fixes
6112 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
6113 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
6114 that was crack, broke the test service.
6116 * dbus/dbus-transport.c (_dbus_transport_open): fix error
6117 handling to avoid piling up errors if we get a failure on the
6120 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
6121 pid in assertion failures.
6123 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
6124 to some fixed size of file descriptor array. Don't return TRUE
6125 anytime a timeout exists, that led to lots of busy loop silliness
6128 2003-04-09 Havoc Pennington <hp@redhat.com>
6130 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
6131 I'd checked this in earlier but hadn't.
6133 2003-04-09 Havoc Pennington <hp@redhat.com>
6135 * bus/dispatch.c (bus_dispatch_test): get a bit further through
6136 the activation test (man this is getting old!)
6138 2003-04-09 Havoc Pennington <hp@redhat.com>
6140 * test/test-utils.c: use dispatch status function to fix this up
6142 * bus/connection.c (connection_watch_callback): don't dispatch
6144 (connection_timeout_callback): don't dispatch from here
6145 (bus_connections_setup_connection): set the dispatch status function
6146 (bus_connection_disconnected): unset it
6148 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
6149 used to add a connection to be dispatched
6150 (_dbus_loop_iterate): do the dispatching at the end of each
6153 * dbus/dbus-connection.c
6154 (dbus_connection_set_dispatch_status_function): new function
6155 allowing us to fix up main loop usage
6156 (_dbus_connection_last_unref): free all the various function
6158 (dbus_connection_dispatch): call the DispatchStatusFunction
6159 whenever this function returns
6160 (dbus_connection_handle_watch): call DispatchStatusFunction
6161 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
6162 (reply_handler_timeout): call DispatchStatusFunction
6163 (dbus_connection_flush): call DispatchStatusFunction
6165 2003-04-09 Havoc Pennington <hp@redhat.com>
6167 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
6170 * bus/dispatch.c (check_service_activated): fix bug in test
6172 * dbus/dbus-mainloop.c (check_timeout): fix this up
6174 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
6175 verbose output so we can sort out output from different processes,
6176 e.g. in the activation case.
6178 2003-04-08 Colin Walters <walters@gnu.org>
6180 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
6182 (bus_context_new): Set it.
6183 (bus_context_unref): Use it to delete the pid file.
6185 2003-04-08 Havoc Pennington <hp@redhat.com>
6187 * test/data/invalid-messages/array-with-mixed-types.message:
6188 regression test that fails for the moment
6190 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
6191 tests for convenience
6193 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
6194 array of nil, it broke things.
6196 * test/data/invalid-messages/array-of-nil.message: regression test
6198 * test/data/valid-messages/array-of-array-of-uint32.message:
6199 happened to write this so added it to suite
6201 2003-04-08 Havoc Pennington <hp@redhat.com>
6203 * bus/driver.c (bus_driver_handle_acquire_service): init
6204 retval/reply before checking name
6206 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
6207 recursion depth argument
6209 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
6210 in the public struct for future extension
6212 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
6215 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
6218 * doc/dbus-specification.sgml: fix typo
6220 2003-04-08 Alexander Larsson <alexl@redhat.com>
6222 Implemented recursive types, named types and new-style iters
6225 * glib/test-thread-client.c: (thread_func):
6226 * glib/test-thread-server.c: (handle_test_message):
6227 * test/test-service.c: (handle_echo):
6236 * dbus/dbus-internals.c: (_dbus_type_to_string):
6237 Update for new types.
6239 * dbus/dbus-marshal.[ch]:
6240 Implement recursive types and the new marshalling format.
6241 Remove hardcoded dict marshalling.
6242 Marshal named types.
6244 * dbus/dbus-message-builder.c:
6246 Remove references to old types
6248 * dbus/dbus-message.[ch]:
6249 New non-refcounted iter API that supports recursive iters.
6250 Use iters for appending, including support for recursive
6252 Add byte and named type support.
6253 Update everything to new marshalling formats.
6254 Add tests for new API.
6256 * dbus/dbus-protocol.h:
6257 Remove old array types.
6258 Add types: BYTE, ARRAY, DICT, NAMED
6260 * dbus/dbus-string.c:
6261 * dbus/dbus-sysdeps.c:
6262 Make parse_double locale safe.
6264 * dbus/dbus-test-main.c:
6270 * doc/dbus-specification.sgml:
6273 * test/data/incomplete-messages/missing-body.message:
6274 * test/data/invalid-messages/bad-boolean.message:
6275 * test/data/invalid-messages/bad-boolean-array.message:
6276 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
6277 * test/data/invalid-messages/boolean-has-no-value.message-raw:
6278 * test/data/invalid-messages/too-short-dict.message:
6279 * test/data/valid-messages/dict-simple.message:
6280 * test/data/valid-messages/dict.message:
6281 * test/data/valid-messages/emptiness.message:
6282 * test/data/valid-messages/lots-of-arguments.message:
6283 * test/data/valid-messages/no-padding.message:
6284 * test/data/valid-messages/recursive-types.message:
6285 Add missing NAME fields
6286 Fix up dicts & arrays
6288 * test/data/invalid-messages/dict-with-nil-value.message:
6289 Removed, this is not invalid anymore.
6291 * test/data/valid-messages/recursive-types.message:
6292 Add new test for deeply recursive types.
6294 2003-04-07 Havoc Pennington <hp@pobox.com>
6296 * bus/driver.c (bus_driver_handle_acquire_service): return an
6297 error if you try to acquire a service that starts with ':'
6299 2003-04-07 Havoc Pennington <hp@redhat.com>
6301 * doc/dbus-specification.sgml: require that base service names
6302 start with ':' and that the base service is created/deleted
6303 as first and last things a connection does on the bus
6305 * bus/dispatch.c (check_existent_service_activation): lots more
6306 work on the activation test; it doesn't fully pass yet...
6308 * test/test-service.c (main): fix so we don't memleak the
6309 connection to the message bus
6310 (filter_func): accept a message asking us to exit
6312 2003-04-06 Havoc Pennington <hp@pobox.com>
6314 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
6317 * configure.in: fixes to Qt detection from Colin Walters
6319 * doc/Makefile.am: Only remove generated docbook dirs if they
6320 exist, from Colin Walters
6322 * dbus/dbus-bus.c: change how we set well-known connections to
6323 NULL, so that it works if a single connection is stored in
6324 two well-known array slots.
6326 * test/Makefile.am: remove a lot of stuff that isn't immediately
6327 useful, it's in CVS history if we want it.
6329 * test/test-service.c: use dbus-mainloop instead of that
6332 2003-04-06 Havoc Pennington <hp@pobox.com>
6334 * dbus/Makefile.am: split lists of sources into stuff that goes in
6335 the library, util functions that go in the lib and are also used
6336 elsewhere, and util functions that are used in tests/daemon but
6337 don't go in the lib.
6339 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
6340 here so it can be used in test binaries also
6342 2003-04-06 Havoc Pennington <hp@pobox.com>
6344 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
6345 here in the parent process, so we can return an error if it
6346 fails. Also, move some of the code into the child so the parent
6347 is less hosed if we fail midway through.
6349 * bus/bus.c (bus_context_new): move pidfile detection further up
6350 in the function, before we start overwriting sockets and such.
6352 * bus/messagebus.in: adjust this a bit, not sure if it will work.
6354 * configure.in: add --with-system-pid-file and --with-system-socket
6356 2003-04-06 Colin Walters <walters@verbum.org>
6358 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
6360 * bus/system.conf.in: Declare a pidfile.
6362 * bus/bus.c (bus_context_new): Test for an existing pid file, and
6363 create one (if appropriate).
6365 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
6366 (struct BusConfigParser) [pidfile]: New.
6367 (element_type_to_name, merge_included, start_busconfig_child)
6368 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
6369 (bus_config_parser_unref): Free it.
6370 (bus_config_parser_get_pidfile): New function.
6372 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
6374 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
6376 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
6378 * dbus/dbus-sysdeps.h: Prototype it.
6380 2003-04-06 Havoc Pennington <hp@pobox.com>
6382 * bus/bus.c (bus_context_new): print the address in here, rather
6383 than in main(), because we need to do it before forking the daemon
6385 * bus/dispatch.c (send_service_nonexistent_error): set the sender
6386 on the service nonexistent error
6388 * bus/driver.c (bus_driver_handle_acquire_service): set the
6389 sender on the AcquireService reply
6391 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
6392 server also listen on a UNIX socket so services can connect to it.
6394 2003-04-06 Havoc Pennington <hp@pobox.com>
6396 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
6397 so it detects deadlocks and also we actually init threads when
6400 2003-04-06 Havoc Pennington <hp@pobox.com>
6402 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
6403 save the domain socket name, and unlink it when we disconnect the
6404 server. Means that at least when we exit normally, we won't leave
6405 a bunch of junk in /tmp
6407 * dbus/dbus-transport-unix.c
6408 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
6409 memory management). (I was making a real change here but then
6412 2003-04-06 Havoc Pennington <hp@pobox.com>
6414 * bus/bus.c (bus_context_new): fix wrong handling of
6415 server_data_slot_unref() in the error case.
6417 * dbus/dbus-internals.h (_dbus_assert): change so it passes
6418 "(condition) != 0" to _dbus_real_assert so that
6419 "_dbus_assert (pointer)" doesn't cause a warning
6421 * bus/main.c (main): accept --print-address option to print out
6422 the message bus address
6424 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
6426 * dbus/dbus-transport.c (_dbus_transport_open): special error for
6427 "tmpdir" option to unix: address on client side
6429 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
6432 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
6433 we can use to create sockets in the test suite.
6435 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
6436 cleanly. To be used for testing.
6438 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
6440 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
6442 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6443 handle trying to call this when there's no servers active
6445 2003-04-05 Havoc Pennington <hp@pobox.com>
6451 2003-04-05 Havoc Pennington <hp@pobox.com>
6453 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
6454 crash on startup. Need to get "try starting the daemon"
6455 in the test suite I guess. ;-)
6457 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
6458 tracked the number of open connections; it's better done in
6459 application-specific code as you want it to span all servers etc.
6461 2003-04-05 Havoc Pennington <hp@pobox.com>
6463 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
6464 patch from Colin Walters
6466 2003-04-05 Havoc Pennington <hp@pobox.com>
6468 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
6469 reality; in fact multiple mechanisms are allowed.
6471 * dbus/dbus-internals.c (_dbus_real_assert)
6472 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
6473 _dbus_assert_not_reached() into functions, so that they don't show
6474 up in basic block counts for test coverage, and don't use up as
6475 much disk space. Does mean slower execution speed though, so
6476 assumes --disable-asserts is the normal production case.
6478 2003-04-05 Havoc Pennington <hp@pobox.com>
6480 * test/Makefile.am (dist-hook): also dist *.in files
6486 2003-04-05 Havoc Pennington <hp@pobox.com>
6488 * dbus/dbus-string.c: docs warning
6490 * dbus/dbus-spawn.c: missing docs
6492 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
6494 2003-04-05 Havoc Pennington <hp@pobox.com>
6496 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
6499 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
6500 to -1 once we've reaped the babysitter
6501 (_dbus_babysitter_handle_watch): do as much work as we can, not
6504 * bus/activation.c: add code using DBusBabysitter so that we
6505 handle it when a service fails to start up properly.
6506 (bus_activation_service_created): don't remove the activation
6507 entries as we go, just let them get removed when we free the pending
6508 activation. Unref reply messages after sending them.
6510 2003-04-05 Havoc Pennington <hp@pobox.com>
6512 * test/decode-gcov.c (main): print per-directory stats in the report
6514 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
6516 2003-04-05 Havoc Pennington <hp@pobox.com>
6518 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
6520 * test/decode-gcov.c: hack up a little program to suck data
6521 out of gcov files. Yes this is sort of silly.
6523 * configure.in: define something in config.h and do an
6524 AM_CONDITIONAL when gcov is enabled
6526 2003-04-04 Havoc Pennington <hp@redhat.com>
6528 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
6529 return a "babysitter" object that is used to monitor the status of
6530 the spawned process and reap it when required.
6532 * test/test-segfault.c, test/test-exit.c,
6533 test/test-sleep-forever.c: binaries that do various lame things,
6534 used in the test suite.
6536 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
6538 2003-04-03 Havoc Pennington <hp@pobox.com>
6540 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
6541 in preparation for modifying it, dbus-sysdeps is getting
6544 2003-04-03 Havoc Pennington <hp@redhat.com>
6546 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
6549 * bus/*.[hc]: adapt to mainloop change
6551 2003-04-03 Havoc Pennington <hp@redhat.com>
6553 * bus/activation.c (load_directory): fix up memleaks
6554 (bus_activation_entry_free): free the entry
6556 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
6557 we get one from the message bus; fix memleaks.
6559 * dbus/dbus-message.c (dbus_set_error_from_message): new function
6561 2003-04-03 Havoc Pennington <hp@pobox.com>
6563 * bus/config-parser.c (bus_config_parser_unref): free
6564 list of mechanisms, bug discovered by test suite enhancements
6565 (putting system.conf and session.conf into suite)
6567 * test/Makefile.am, test/test-service.c: add placeholder for a
6568 test service that we'll activate as part of test suite. Doesn't
6571 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
6572 setting NULL value, and use system malloc not dbus_malloc()
6573 when we have unavoidable memleakage.
6575 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
6576 didn't work, and support DBUS_BUS_ACTIVATION.
6578 * bus/activation.c (child_setup): pass our well-known bus type to
6581 * bus/config-parser.c: support <type> to specify well-known type
6583 * doc/dbus-specification.sgml: document the env variables to
6584 locate well-known buses and find service activator
6586 2003-04-02 Havoc Pennington <hp@redhat.com>
6588 * test/Makefile.am (all-local): add a rule to copy tests to
6589 builddir, so we can have generated tests. Use this to remove the
6590 silly hack for testing system.conf and session.conf. Will use this
6591 shortly to generate .service files pointing to test binaries.
6593 2003-04-02 Havoc Pennington <hp@redhat.com>
6595 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
6596 current alloc and needed new length, not max of the doubled
6597 allocation and needed new length. Also, when building tests,
6598 don't do the double-allocation stuff, just realloc every time.
6600 2003-04-02 Havoc Pennington <hp@redhat.com>
6602 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
6604 (_dbus_string_get_dirname): new
6605 (_dbus_sysdeps_test): new
6606 (_dbus_directory_open): include dirnames in error messages
6608 * bus/config-parser.c: interpret <include> and <includedir> and
6609 <servicedir> relative to config file location if the given
6610 filename is not absolute.
6612 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
6614 2003-04-02 Havoc Pennington <hp@redhat.com>
6616 * bus/connection.c (bus_transaction_send_error_reply): set sender
6617 service for the error, and unref the reply on success
6619 * bus/activation.c: convert to use BusTransaction so OOM can be
6621 (bus_activation_service_created): set sender of the message
6623 2003-04-01 Havoc Pennington <hp@redhat.com>
6625 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
6626 <includedir> (at least mostly)
6628 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
6629 first, then the user ID
6631 2003-04-01 Havoc Pennington <hp@pobox.com>
6633 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
6636 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
6638 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
6640 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
6641 socket 0777, and unlink any existing socket.
6643 * bus/bus.c (bus_context_new): change our UID/GID and fork if
6644 the configuration file so specifies; set up auth mechanism
6647 * bus/config-parser.c (bus_config_parser_content): add support
6648 for <fork> option and fill in code for <auth>
6650 * bus/system.conf.in: add <fork/> to default configuration,
6651 and limit auth mechanisms to EXTERNAL
6653 * doc/config-file.txt (Elements): add <fork>
6655 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
6656 (_dbus_change_identity): new function
6658 2003-03-31 Havoc Pennington <hp@redhat.com>
6660 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
6661 (_dbus_listen_unix_socket): fix off-by-one error in null
6662 termination spotted by Nalin
6664 2003-03-31 Havoc Pennington <hp@redhat.com>
6666 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
6667 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
6668 having a real home directory available.
6670 2003-03-31 Havoc Pennington <hp@redhat.com>
6672 * bus/Makefile.am (install-data-hook): create /var/run/dbus
6674 * bus/messagebus.in: add init script for Red Hat /etc/init.d
6676 * configure.in: add support for specifying a style of init script
6679 2003-03-31 Havoc Pennington <hp@redhat.com>
6681 Fix some annoying DBusString API and fix all affected code.
6683 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
6685 (_dbus_string_get_data): change to return string instead of using
6687 (_dbus_string_get_const_data): ditto
6688 (_dbus_string_get_data_len): ditto
6689 (_dbus_string_get_const_data_len): ditto
6691 2003-03-31 Havoc Pennington <hp@redhat.com>
6693 * bus/main.c (main): fix up the command line arguments to be nicer
6695 2003-03-31 Havoc Pennington <hp@redhat.com>
6697 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
6698 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
6699 final location that lands in the config file
6701 * bus/config-loader-expat.c (bus_config_load): fix type of
6704 * doc/TODO: remove TODO item for dbus_bus_get()
6706 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
6708 2003-03-31 Havoc Pennington <hp@pobox.com>
6710 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
6711 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
6712 argument since they are always client side
6714 * dbus/dbus-server.c (dbus_server_get_address): new function
6716 * bus/main.c (main): take the configuration file as an argument.
6718 * test/data/valid-config-files/debug-allow-all.conf: new file to
6719 use with dispatch.c tests for example
6721 * bus/test-main.c (main): require test data dir
6723 * bus/bus.c (bus_context_new): change this to take a
6724 configuration file name as argument
6726 * doc/config-file.txt (Elements): add <servicedir>
6728 * bus/system.conf, bus/session.conf: new files
6730 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
6731 well-known socket if none set
6733 * configure.in: create system.conf and session.conf
6735 2003-03-30 Havoc Pennington <hp@pobox.com>
6737 * bus/config-parser.c: hacking
6739 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
6740 to shut down, since it could cause weirdness with the DBusList
6743 * dbus/dbus-list.c (_dbus_list_test): add tests for the
6744 link-oriented stack routines
6745 (alloc_link): free the mempool if the first alloc from it fails
6747 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
6749 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
6751 (_dbus_string_skip_white): new
6753 * doc/config-file.txt (Elements): add <includedir>
6755 2003-03-28 Havoc Pennington <hp@pobox.com>
6757 * dbus/dbus-string.c (_dbus_string_copy_data_len)
6758 (_dbus_string_copy_data): new functions
6760 2003-03-28 Anders Carlsson <andersca@codefactory.se>
6762 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
6766 * dbus/dbus-memory.c:
6769 2003-03-28 Havoc Pennington <hp@pobox.com>
6771 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
6772 I think it may have just been superstition. Not sure.
6774 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
6775 failures that were not being handled.
6777 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
6779 * dbus/dbus-memory.c: add ability to set number of mallocs in a
6780 row that will fail on out-of-memory.
6782 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
6783 function for testing out-of-memory handling.
6785 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
6786 allocation functions, they do map exactly to the expat ones.
6788 2003-03-27 Havoc Pennington <hp@redhat.com>
6790 * bus/config-loader-libxml.c (bus_config_load): add another error
6793 2003-03-26 Anders Carlsson <andersca@codefactory.se>
6796 Add note about automatic service activation.
6798 * doc/dbus-specification.sgml:
6799 Rename the specification and clarify a few things.
6801 2003-03-26 Anders Carlsson <andersca@codefactory.se>
6804 * dbus/dbus-address.c:
6806 * dbus/dbus-marshal.c:
6807 * dbus/dbus-server-debug-pipe.c:
6808 * dbus/dbus-transport-unix.c:
6809 Fix documentation warnings.
6811 2003-03-26 Havoc Pennington <hp@pobox.com>
6813 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
6814 after every test so it's quick and easy to see which leaked, and
6815 so we test multiple dbus_shutdown() calls
6817 * configure.in: change configure.in XML stuff to also support
6820 * config-loader-libxml.c: some hacking
6822 * config-loader-expat.c: some hacking
6824 * config-parser.c: some hacking, plus tests
6826 2003-03-25 Havoc Pennington <hp@redhat.com>
6828 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
6830 * configure.in: add --with-xml option to specify XML library,
6831 right now only libxml is supported.
6833 * bus/config-loader-libxml.c, config-parser.c: sync some minor
6834 nonworking code between home and work, still just stubs
6836 2003-03-24 Havoc Pennington <hp@redhat.com>
6838 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
6841 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
6842 NULL argument for "message" if the error is a well-known one,
6843 fill in a generic message in this case.
6845 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
6848 * bus/test.c (bus_test_flush_bus): add
6850 * bus/policy.c (bus_policy_test): test code stub
6852 2003-03-24 Havoc Pennington <hp@pobox.com>
6854 * bus/connection.c (bus_connections_setup_connection): set up
6855 the "can this user connect" function, but it always returns
6856 TRUE until we have a config file parser so we can have a config
6857 file that allows connections.
6859 2003-03-23 Havoc Pennington <hp@pobox.com>
6861 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
6862 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
6863 the mutex, so we can check for proper memory management
6866 * dbus/dbus-dataslot.c: remove the mutex from
6867 DBusDataSlotAllocator and lock it manually when using it,
6868 to simplify fitting it into the global slots framework.
6870 * dbus/dbus-threads.c (init_static_locks): rework how we're
6871 handling global locks so they are easily shut down.
6873 * bus/policy.c (bus_policy_append_rule): fix
6875 * bus/test-main.c (main): check for memleaks
6877 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
6878 test suite check for memleaks
6880 * dbus/dbus-memory.c: add support in test mode for tracking
6881 number of outstanding blocks
6883 2003-03-23 Havoc Pennington <hp@pobox.com>
6885 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
6888 * dbus/dbus-hash.h: add ULONG hash keys
6890 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
6891 (_dbus_get_group_id): new function
6893 2003-03-20 Havoc Pennington <hp@redhat.com>
6895 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
6897 (dbus_connection_get_unix_user): new function
6899 2003-03-20 Havoc Pennington <hp@pobox.com>
6901 * bus/connection.c (bus_connection_send_oom_error): assert that
6902 message has a sender
6903 (connection_execute_transaction): ditto
6904 (bus_connection_preallocate_oom_error): fix to set the sender, and
6905 set recipient to the destination service, not the bus driver
6907 * bus/policy.c: hacking
6909 * dbus/dbus-message.c (dbus_message_service_is): new function
6910 (dbus_message_sender_is): new
6912 2003-03-19 Havoc Pennington <hp@redhat.com>
6914 * bus/policy.c: start sketching code for policy restrictions on
6915 what connections can do.
6917 2003-03-18 Havoc Pennington <hp@redhat.com>
6919 * doc/TODO: some notes on high-level todo items. Little nitpick
6920 stuff is all in @todo, so no need to add it here.
6922 * doc/config-file.txt: some notes on how config file might look
6924 2003-03-18 Anders Carlsson <andersca@codefactory.se>
6930 2003-03-17 Havoc Pennington <hp@redhat.com>
6932 * dbus/dbus-internals.h: add gcc attributes so that
6933 our printf-style functions warn on bad arguments to
6936 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
6939 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
6942 2003-03-17 Havoc Pennington <hp@redhat.com>
6944 * bus/test-main.c (main): make it print something as it runs
6945 so make check doesn't look stuck
6947 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
6948 from CVS, now obsolete
6950 2003-03-17 Anders Carlsson <andersca@codefactory.se>
6952 * bus/dispatch.c: (bus_dispatch):
6953 Refetch the service name since it may have been reallocated
6954 when dbus_message_set_sender was called.
6956 * dbus/dbus-sysdeps.c: (_dbus_accept):
6957 Add address and address length variables and use them to stop
6958 valgrind from complaining.
6960 2003-03-17 Havoc Pennington <hp@pobox.com>
6962 All tests pass, no memleaks, no valgrind complaints.
6964 * bus/test.c: refcount handler_slot
6966 * bus/connection.c (bus_connections_new): refcount
6967 connection_data_slot
6969 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
6970 bytes so that auth scripts pass.
6972 * bus/dispatch.c: init message_handler_slot so it gets allocated
6975 * bus/dispatch.c (message_handler_slot_ref): fix memleak
6977 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
6978 dealloc server_pipe_hash when no longer used for benefit of
6981 * dbus/dbus-auth.c (process_command): memleak fix
6983 * bus/dispatch.c (check_hello_message): memleak fix
6985 2003-03-16 Havoc Pennington <hp@pobox.com>
6987 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
6989 2003-03-17 Anders Carlsson <andersca@codefactory.se>
6991 * bus/activation.c (bus_activation_activate_service): Append
6992 the pending activation entry to the list of pending activations.
6994 2003-03-16 Havoc Pennington <hp@pobox.com>
6996 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
6999 * dbus/dbus-address.c (create_entry): fix OOM handling when
7000 failing to alloc entry->method
7002 2003-03-16 Havoc Pennington <hp@pobox.com>
7004 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
7007 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
7008 add some missing dbus_set_result
7010 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
7011 alloc the DBusMessageHandler
7013 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
7014 the transport here, since we call this from the finalizer; it
7015 resulted in a double-finalize.
7017 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
7018 where we tried to use transport->connection that was NULL,
7019 happened when transport was disconnected early on due to OOM
7021 * bus/*.c: adapt to handle OOM for watches/timeouts
7023 * dbus/dbus-transport-unix.c: port to handle OOM during
7026 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
7027 reference to unused bytes instead of a copy
7029 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
7032 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
7035 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
7038 2003-03-16 Anders Carlsson <andersca@codefactory.se>
7040 * doc/dbus-specification.sgml:
7041 Document reply message for ActivateService.
7043 2003-03-16 Anders Carlsson <andersca@codefactory.se>
7045 * bus/activation.c: (bus_pending_activation_entry_free),
7046 (bus_pending_activation_free), (bus_activation_new),
7047 (bus_activation_unref), (bus_activation_service_created),
7048 (bus_activation_activate_service):
7050 * bus/bus.c: (bus_context_new):
7051 * bus/desktop-file.c: (new_section):
7052 * bus/driver.c: (bus_driver_send_service_deleted),
7053 (bus_driver_handle_activate_service):
7054 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
7056 * dbus/dbus-connection.c:
7057 (dbus_connection_send_with_reply_and_block):
7058 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7059 * dbus/dbus-protocol.h:
7060 Make activation work better. Now pending activations will be queued
7061 and the daemon won't try to activate services that are already registered.
7063 2003-03-16 Havoc Pennington <hp@pobox.com>
7065 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
7068 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
7069 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
7071 2003-03-16 Havoc Pennington <hp@pobox.com>
7073 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
7074 this. always run the test suite before commit...
7076 * bus/*: adapt to DBusConnection API changes
7078 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
7079 requires renaming stuff to avoid dbus_connection_dispatch name
7082 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
7085 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7086 separate from _dbus_message_loader_return_buffer()
7088 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
7089 this, because it's now always broken to use; the number of
7090 messages in queue vs. the number still buffered by the message
7091 loader is undefined/meaningless. Should use
7092 dbus_connection_get_dispatch_state().
7093 (dbus_connection_dispatch): rename from
7094 dbus_connection_dispatch_message
7096 2003-03-16 Havoc Pennington <hp@pobox.com>
7098 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
7101 2003-03-16 Anders Carlsson <andersca@codefactory.se>
7103 * dbus/dbus-connection.c:
7104 (dbus_connection_send_with_reply_and_block):
7105 Decrease connection->n_incoming when removing an entry
7107 * dbus/dbus-dict.c: (dbus_dict_entry_free),
7108 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
7109 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
7110 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
7111 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
7112 (dbus_dict_get_byte_array):
7113 Handle NULL arrays and strings. Also add support for byte arrays.
7115 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
7116 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
7117 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7118 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7119 (_dbus_demarshal_dict), (demarshal_and_validate_len),
7120 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
7121 * dbus/dbus-marshal.h:
7122 Add support for marshalling and demarshalling empty arrays and strings.
7124 * dbus/dbus-message.c: (dbus_message_append_args_valist),
7125 (dbus_message_append_string_array),
7126 (dbus_message_iter_get_boolean),
7127 (dbus_message_iter_get_boolean_array),
7128 (dbus_message_iter_get_int32_array),
7129 (dbus_message_iter_get_uint32_array),
7130 (dbus_message_iter_get_double_array),
7131 (dbus_message_iter_get_byte_array),
7132 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
7133 (check_message_handling):
7134 Add support for getting empty arrays and dicts.
7136 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
7137 Don't do any validation at all for now, that's better than just checking
7140 * test/data/valid-messages/emptiness.message:
7141 New test message with lots of empty arrays.
7143 2003-03-16 Havoc Pennington <hp@pobox.com>
7145 * dbus/dbus-connection.c
7146 (_dbus_connection_queue_received_message_link): new function that
7147 can't fail due to OOM
7149 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
7150 new function pops a message together with a list link
7153 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
7154 message queuing functions to avoid needing to alloc memory
7156 2003-03-16 Havoc Pennington <hp@pobox.com>
7158 Oops - test code was only testing failure of around 30 of the
7159 mallocs in the test path, but it turns out there are 500+
7160 mallocs. I believe this was due to misguided linking setup such
7161 that there was one copy of dbus_malloc etc. in the daemon and one
7162 in the shared lib, and only daemon mallocs were tested. In any
7163 case, the test case now tests all 500+ mallocs, and doesn't pass
7164 yet, though there are lots of fixes in this patch.
7166 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
7167 this so that it doesn't need to allocate memory, since it
7168 has no way of indicating failure due to OOM (and would be
7169 annoying if it did).
7171 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
7173 * bus/Makefile.am: rearrange to create two self-contained
7174 libraries, to avoid having libraries with overlapping symbols.
7175 that was resulting in weirdness, e.g. I'm pretty sure there
7176 were two copies of global static variables.
7178 * dbus/dbus-internals.c: move the malloc debug stuff to
7181 * dbus/dbus-list.c (free_link): free list mempool if it becomes
7184 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
7186 * dbus/dbus-address.c (dbus_parse_address): free list nodes
7189 * bus/dispatch.c (bus_dispatch_add_connection): free
7190 message_handler_slot when no longer using it, so
7191 memory leak checkers are happy for the test suite.
7193 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
7195 * bus/bus.c (new_connection_callback): disconnect in here if
7196 bus_connections_setup_connection fails.
7198 * bus/connection.c (bus_connections_unref): fix to free the
7200 (bus_connections_setup_connection): if this fails, don't
7201 disconnect the connection, just be sure there are no side
7204 * dbus/dbus-string.c (undo_alignment): unbreak this
7206 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
7208 (_dbus_auth_new): fix the order in which we free strings
7211 * bus/connection.c (bus_connection_disconnected): fix to
7212 not send ServiceDeleted multiple times in case of memory
7215 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
7216 get the base service name
7217 (dbus_bus_register_client): don't return base service name,
7218 instead store it on the DBusConnection and have an accessor
7220 (dbus_bus_register_client): rename dbus_bus_register()
7222 * bus/dispatch.c (check_hello_message): verify that other
7223 connections on the bus also got the correct results, not
7224 just the one sending hello
7226 2003-03-15 Havoc Pennington <hp@pobox.com>
7228 Make it pass the Hello handling test including all OOM codepaths.
7229 Now to do other messages...
7231 * bus/services.c (bus_service_remove_owner): fix crash when
7232 removing owner from an empty list of owners
7233 (bus_registry_ensure): don't leave service in the list of
7234 a connection's owned services if we fail to put the service
7237 * bus/connection.c (bus_connection_preallocate_oom_error): set
7238 error flag on the OOM error.
7240 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7241 handle _dbus_transport_set_connection failure
7243 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
7244 to create watches up front and simply enable/disable them as
7246 (unix_connection_set): this can now fail on OOM
7248 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
7249 of enabling/disabling a watch or timeout.
7251 * bus/loop.c (bus_loop_iterate): don't touch disabled
7254 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
7256 2003-03-15 Havoc Pennington <hp@pobox.com>
7258 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
7259 write useful test code, after all that futzing around ;-)
7261 Test does not yet pass because we can't handle OOM in
7262 _dbus_transport_messages_pending (basically,
7263 dbus_connection_preallocate_send() does not prealloc the write
7264 watch). To fix this, I think we need to add new stuff to
7265 set_watch_functions, namely a SetEnabled function so we can alloc
7266 the watch earlier, then enable it later.
7268 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
7269 dbus-memory.c to the convenience lib
7271 * bus/test.c: rename some static functions to keep them clearly
7272 distinct from stuff in connection.c. Handle client disconnection.
7274 2003-03-14 Havoc Pennington <hp@pobox.com>
7276 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
7277 transport, tests more of the real codepath. Set up clients
7278 with bus_setup_debug_client.
7280 * bus/test.c (bus_setup_debug_client): function to set up debug
7281 "clients" on the main loop
7283 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
7286 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
7289 * dbus/dbus-server-debug.c: support a debug server based on pipes
7291 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
7292 (_dbus_close): new function
7294 * configure.in: check for socketpair
7296 2003-03-14 Havoc Pennington <hp@redhat.com>
7298 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
7301 * dbus/dbus-transport-debug.c: rework this a good bit to be
7302 less complicated. hopefully still works.
7304 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
7307 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
7310 * dbus/dbus-message.c (dbus_message_copy): rename from
7311 dbus_message_new_from_message, fix it up to copy
7312 all the message fields, add test case
7314 * bus/dispatch.c (bus_dispatch_test): add some more test code,
7315 not quite passing yet
7317 2003-03-14 Havoc Pennington <hp@pobox.com>
7319 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
7320 until no work remains" in test code. (the large diff here
7321 is just code movement, no actual changes)
7323 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
7324 1, no point waiting around for test code.
7325 (_dbus_server_debug_accept_transport): unref the timeout
7326 after adding it (right?)
7328 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
7330 2003-03-13 Havoc Pennington <hp@redhat.com>
7332 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
7335 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
7338 * dbus/dbus-connection.h: Make AddWatchFunction and
7339 AddTimeoutFunction return a bool so they can fail on out-of-memory
7341 * bus/bus.c (bus_context_new): set up timeout handlers
7343 * bus/connection.c (bus_connections_setup_connection): set up
7346 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
7349 * bus/bus.c (bus_context_new): adapt to changes
7351 * bus/connection.c: adapt to changes
7353 * test/watch.c: adapt to DBusWatch changes
7355 * bus/dispatch.c (bus_dispatch_test): started adding this but
7358 2003-03-14 Anders Carlsson <andersca@codefactory.se>
7360 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
7362 2003-03-13 Havoc Pennington <hp@pobox.com>
7364 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
7365 set up a test framework as for the library
7367 2003-03-12 Havoc Pennington <hp@pobox.com>
7369 Throughout: purge global variables, introduce BusActivation,
7370 BusConnections, BusRegistry, etc. objects instead.
7372 * bus/bus.h, bus/bus.c: introduce BusContext as a global
7375 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
7376 going to redo this a bit differently I think
7378 2003-03-12 Havoc Pennington <hp@redhat.com>
7380 Mega-patch that gets the message bus daemon initially handling
7381 out-of-memory. Work still needed. Also lots of random
7382 moving stuff to DBusError instead of ResultCode.
7384 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
7386 * dbus/dbus-connection.c
7387 (dbus_connection_send_with_reply_and_block): use DBusError
7389 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
7392 * dbus/dbus-connection.c (dbus_connection_send): drop the result
7393 code here, as the only failure possible is OOM.
7395 * bus/connection.c (bus_connection_disconnect):
7396 rename bus_connection_disconnected as it's a notification only
7398 * bus/driver.c (bus_driver_handle_acquire_service): don't free
7399 "name" on get_args failure, should be done by get_args;
7400 don't disconnect client for bad args, just return an error.
7401 (bus_driver_handle_service_exists): ditto
7403 * bus/services.c (bus_services_list): NULL-terminate returned array
7405 * bus/driver.c (bus_driver_send_service_lost)
7406 (bus_driver_send_service_acquired): send messages from driver to a
7407 specific client to the client's unique name, not to the broadcast
7410 * dbus/dbus-message.c (decode_header_data): reject messages that
7411 contain no name field
7412 (_dbus_message_get_client_serial): rename to
7413 dbus_message_get_serial and make public
7414 (_dbus_message_set_serial): rename from set_client_serial
7415 (_dbus_message_set_reply_serial): make public
7416 (_dbus_message_get_reply_serial): make public
7418 * bus/connection.c (bus_connection_foreach): allow stopping
7419 iteration by returning FALSE from foreach function.
7421 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
7422 (dbus_connection_free_preallocated_send)
7423 (dbus_connection_preallocate_send): new API for sending a message
7424 without possibility of malloc failure.
7425 (dbus_connection_send_message): rename to just
7426 dbus_connection_send (and same for whole function family)
7428 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
7430 * dbus/dbus-sysdeps.c (_dbus_exit): new function
7432 * bus/activation.c: handle/return errors
7434 * dbus/dbus-errors.h: add more DBUS_ERROR #define
7436 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
7437 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
7438 (_dbus_result_from_errno): move to this file
7440 2003-03-10 Anders Carlsson <andersca@codefactory.se>
7442 * dbus/dbus-marshal.c:
7443 (_dbus_marshal_set_string):
7444 Take a length argument so we can marshal the correct string
7447 (_dbus_marshal_dict), (_dbus_demarshal_dict),
7448 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
7449 (_dbus_marshal_test):
7450 * dbus/dbus-marshal.h:
7451 Add support for marshalling and demarshalling dicts.
7453 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
7454 Add support for TYPE DICT.
7456 * dbus/dbus-message.c: (set_string_field):
7457 Adjust header padding.
7459 (dbus_message_append_args_valist), (dbus_message_append_dict),
7460 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
7461 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
7462 (check_message_handling), (check_have_valid_message):
7463 * dbus/dbus-message.h:
7464 Add functions for setting and getting dicts.
7466 * dbus/dbus-protocol.h:
7472 * doc/dbus-specification.sgml:
7473 Add information about how dicts are marshalled.
7475 * test/data/invalid-messages/dict-with-nil-value.message:
7476 * test/data/invalid-messages/too-short-dict.message:
7477 * test/data/valid-messages/dict-simple.message:
7478 * test/data/valid-messages/dict.message:
7479 Add sample messages containing dicts.
7481 2003-03-08 Anders Carlsson <andersca@codefactory.se>
7483 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
7485 2003-03-07 Anders Carlsson <andersca@codefactory.se>
7488 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
7489 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
7490 (dbus_dict_set_int32), (dbus_dict_set_uint32),
7491 (dbus_dict_set_double), (dbus_dict_set_string),
7492 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
7493 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
7494 (dbus_dict_set_string_array), (_dbus_dict_test):
7496 Fix according to comments from Havoc.
7498 2003-03-06 Michael Meeks <michael@server.home>
7500 * configure.in: if we don't have kde-config, disable have_qt.
7502 2003-03-07 Anders Carlsson <andersca@codefactory.se>
7507 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
7508 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
7509 (dbus_dict_remove), (dbus_dict_get_value_type),
7510 (dbus_dict_get_keys), (dbus_dict_put_boolean),
7511 (dbus_dict_put_int32), (dbus_dict_put_uint32),
7512 (dbus_dict_put_double), (dbus_dict_put_string),
7513 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
7514 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
7515 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
7516 (dbus_dict_get_int32), (dbus_dict_get_uint32),
7517 (dbus_dict_get_double), (dbus_dict_get_string),
7518 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
7519 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
7520 (dbus_dict_get_string_array), (_dbus_dict_test):
7522 Add DBusDict implementation
7524 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
7528 2003-03-04 Havoc Pennington <hp@pobox.com>
7530 * test/data/auth/*: adapt to changes
7532 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
7533 USERID_BASE64 and change USERNAME_BASE64 to put in username not
7536 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
7537 more stuff from being in a context name, to make the protocol
7538 simpler to deal with
7540 * dbus/dbus-errors.c (dbus_error_has_name): new function
7541 (dbus_error_is_set): new function
7543 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
7544 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
7546 * dbus/dbus-connection.c (dbus_connection_flush): also read
7547 messages during a flush operation
7549 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
7551 2003-03-05 Anders Carlsson <andersca@codefactory.se>
7553 * configure.in: Check for gethostbyname on Solaris.
7555 * dbus/dbus-transport.c: (_dbus_transport_open):
7556 Remove duplicate "tcp" entry.
7558 * doc/dbus-specification.sgml:
7559 Clarify some things.
7561 2003-03-05 Anders Carlsson <andersca@codefactory.se>
7563 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
7564 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
7565 (_dbus_keyring_test):
7566 * dbus/dbus-md5.c: (_dbus_md5_compute):
7567 * dbus/dbus-sha.c: (_dbus_sha_compute):
7570 2003-03-05 Anders Carlsson <andersca@codefactory.se>
7572 * README: Add some things.
7574 2003-03-04 Anders Carlsson <andersca@codefactory.se>
7576 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
7577 after case DBUS_TYPE_BOOELAN.
7579 2003-03-02 Havoc Pennington <hp@pobox.com>
7581 * test/break-loader.c (randomly_set_extreme_ints): add test that
7582 sets really huge and small integers
7584 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
7585 that length of boolean array fits in the string, and that
7586 string has room for boolean value in single-bool case.
7588 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
7589 optional value to "ALIGN" command which is what to fill the
7592 * test/data/valid-messages/no-padding.message: add regression
7593 test for the message padding problem
7595 2003-03-02 Havoc Pennington <hp@pobox.com>
7597 * dbus/dbus-message.c (decode_header_data): fix to always init
7598 message_padding, from Benjamin Dauvergne
7600 2003-03-02 Havoc Pennington <hp@pobox.com>
7606 2003-03-01 Joe Shaw <joe@assbarn.com>
7608 * configure.in: Check for "struct cmsgcred" and try to access its
7609 members for BSD-like unices.
7611 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
7612 _dbus_read_credentials_unix_socket().
7613 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
7614 read() for reading the credential byte off the unix socket. Use
7615 struct cmsgcred on systems that support it.
7617 2003-02-27 Alexander Larsson <alexl@redhat.com>
7621 Make gthreads-2.0 dependency optional. Don't build thread test if
7624 2003-02-27 Havoc Pennington <hp@pobox.com>
7626 * dbus/dbus-connection.c
7627 (dbus_connection_send_message_with_reply_and_block): fix doh!
7628 doh! doh! bug that resulted in never removing a reply from the
7629 queue, no wonder we called get_reply_serial so much ;-)
7631 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
7632 and client serial instead of demarshaling them every time
7634 2003-02-27 Havoc Pennington <hp@pobox.com>
7636 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
7637 more inlined, using dbus-string-private.h, speeds things up
7640 * dbus/dbus-string.c (_dbus_string_free): apply align offset
7641 when freeing the string
7642 (_dbus_string_steal_data): fix for align offset
7643 (undo_alignment): new function
7645 2003-02-26 Havoc Pennington <hp@redhat.com>
7647 All kinds of audit fixes from Owen, plus initial attempt to
7648 handle unaligned memory returned from malloc.
7650 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
7651 leave room for align_offset and nul byte
7652 (fixup_alignment): function to track an align_offset and
7653 ensure real->str is aligned
7654 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
7655 to allow a nul byte plus align offset
7656 (_dbus_string_lock): fix overflow issue
7657 (_dbus_string_init_const_len): add assertions on sanity of len,
7658 assign allocated to be ALLOCATION_PADDING larger than len
7659 (set_length): fixup the overflow handling
7660 (_dbus_string_get_data_len): fix overflow in assertion
7661 (open_gap): detect overflow in size of gap to be opened
7662 (_dbus_string_lengthen): add overflow check
7663 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
7664 (_dbus_string_append): add overflow check
7665 (_dbus_string_append_unichar): overflow
7666 (_dbus_string_delete): fix overflow in assertion
7667 (_dbus_string_copy_len): overflow in assertion
7668 (_dbus_string_replace_len): overflows in assertions
7669 (_dbus_string_find): change to implement in terms of
7670 _dbus_string_find_to
7671 (_dbus_string_find_to): assorted fixage
7672 (_dbus_string_equal_c_str): assert c_str != NULL,
7673 fix logic so the function works
7674 (_dbus_string_ends_with_c_str): fix overflow thingy
7675 (_dbus_string_base64_encode): overflow fix
7676 (_dbus_string_validate_ascii): overflow
7677 (_dbus_string_validate_nul): overflow
7679 2003-02-26 Havoc Pennington <hp@redhat.com>
7681 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
7683 2003-02-26 Alexander Larsson <alexl@redhat.com>
7686 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
7688 * dbus/dbus-connection.c:
7689 * dbus/dbus-connection.h:
7690 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
7691 Add dbus_connection_set_wakeup_main_function and use it when queueing
7692 incoming and outgoing messages.
7695 * dbus/dbus-dataslot.c:
7696 Threadsafe usage of DBusDataSlotAllocator
7698 * dbus/dbus-message.c: (dbus_message_get_args_iter):
7701 * dbus/dbus-server-unix.c:
7704 * glib/dbus-gmain.c:
7705 Implement the new wakeup functions for glib.
7708 * glib/test-thread-client.c:
7709 * glib/test-thread-server.c:
7710 * glib/test-thread.h:
7711 Initial cut at some thread test code. Not really done yet.
7713 2003-02-26 Havoc Pennington <hp@pobox.com>
7715 * dbus/dbus-connection.c
7716 (dbus_connection_send_message_with_reply_and_block): fix crash
7717 where we ref'd the outgoing message instead of the returned reply
7719 * dbus/dbus-transport-unix.c (do_authentication): check read watch
7720 at the end of this function, so if we didn't need to read for
7721 authentication, we reinstall it for receiving messages
7723 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
7724 a NULL sender for peer-to-peer case
7726 * dbus/dbus-transport-unix.c (check_read_watch): handle
7727 !authenticated case correctly
7729 * glib/dbus-gmain.c: add support for DBusServer
7731 * dbus/dbus-server.c: add data slot support
7733 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
7734 return values and handle errors
7736 * dbus/dbus-dataslot.c: factor out the data slot stuff from
7739 * Doxyfile.in (INPUT): add glib subdir
7741 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
7742 setup_with_g_main instead of hookup_with_g_main; write docs
7744 2003-02-24 Anders Carlsson <andersca@codefactory.se>
7746 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
7747 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
7748 * dbus/dbus-message.c: (dbus_message_append_boolean),
7749 (dbus_message_append_boolean_array),
7750 (dbus_message_get_args_valist), (_dbus_message_test):
7751 * dbus/dbus-message.h:
7752 * doc/dbus-specification.sgml:
7753 Various fixes as pointed out by Havoc.
7755 * test/data/invalid-messages/bad-boolean-array.message:
7756 * test/data/invalid-messages/bad-boolean.message:
7757 Add invalid boolean value test cases.
7759 2003-02-24 Anders Carlsson <andersca@codefactory.se>
7761 * dbus/dbus-internals.c: (_dbus_type_to_string):
7762 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
7763 (_dbus_marshal_validate_arg):
7764 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
7765 * dbus/dbus-message.c: (dbus_message_append_args_valist),
7766 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
7767 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
7768 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
7769 (dbus_message_iter_get_double),
7770 (dbus_message_iter_get_boolean_array), (message_iter_test):
7771 * dbus/dbus-message.h:
7772 * dbus/dbus-protocol.h:
7773 * doc/dbus-specification.sgml:
7774 * test/data/valid-messages/lots-of-arguments.message:
7775 Add support for boolean and boolean array types.
7777 2003-02-23 Havoc Pennington <hp@pobox.com>
7779 * dbus/dbus-keyring.c: finish most of this implementation and
7782 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
7783 these barf if the error isn't cleared to NULL
7785 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
7786 (_dbus_create_directory): new function
7788 * dbus/dbus-errors.c (dbus_set_error): fix warning
7790 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
7791 (_dbus_string_hex_decode): new function
7792 (test_hex_roundtrip): test code
7794 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
7796 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
7798 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
7799 the save-to-temp/rename trick to atomically write the new file
7800 (_dbus_string_parse_uint): new function
7802 2003-02-22 Havoc Pennington <hp@pobox.com>
7804 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
7806 2003-02-22 Havoc Pennington <hp@pobox.com>
7808 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
7809 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
7811 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
7813 * dbus/test/data/sha-1: add US government test suite for SHA-1
7815 2003-02-21 Anders Carlsson <andersca@codefactory.se>
7817 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
7818 Make string arrays NULL-terminated.
7820 * dbus/dbus-memory.c: (dbus_free_string_array):
7821 * dbus/dbus-memory.h:
7822 New function for freeing NULL-terminated string arrays.
7824 * dbus/dbus-message-builder.c: (append_quoted_string),
7825 (_dbus_message_data_load):
7826 Add support for array types.
7828 * dbus/dbus-message.c: (check_message_handling):
7829 Add more types as test cases.
7831 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
7832 (_dbus_string_parse_double):
7833 Add the start offset to the end offset.
7835 * test/data/valid-messages/lots-of-arguments.message:
7836 New test message with lots of arguments.
7838 2003-02-21 Anders Carlsson <andersca@codefactory.se>
7840 * dbus/dbus-message.c: (dbus_message_append_nil),
7841 (dbus_message_append_int32), (dbus_message_append_uint32),
7842 (dbus_message_append_double), (dbus_message_append_string),
7843 (dbus_message_append_int32_array),
7844 (dbus_message_append_uint32_array),
7845 (dbus_message_append_double_array),
7846 (dbus_message_append_byte_array),
7847 (dbus_message_append_string_array):
7848 Fix all out-of-memory handling in these functions.
7850 2003-02-21 Anders Carlsson <andersca@codefactory.se>
7852 * dbus/dbus-message.c: (dbus_message_append_nil):
7855 2003-02-21 Anders Carlsson <andersca@codefactory.se>
7857 * dbus/dbus-message.c: (dbus_message_append_args_valist),
7858 (dbus_message_append_nil), (dbus_message_append_int32_array),
7859 (dbus_message_append_uint32_array),
7860 (dbus_message_append_double_array),
7861 (dbus_message_append_byte_array),
7862 (dbus_message_append_string_array), (dbus_message_get_args_valist),
7863 (dbus_message_iter_get_int32_array),
7864 (dbus_message_iter_get_uint32_array),
7865 (dbus_message_iter_get_double_array),
7866 (dbus_message_iter_get_byte_array),
7867 (dbus_message_iter_get_string_array):
7869 * dbus/dbus-message.h:
7870 Add functions for appending and getting arrays.
7872 2003-02-21 Anders Carlsson <andersca@codefactory.se>
7874 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
7875 element size at least 8 bytes, fixes mempool tests on
7878 2003-02-20 Alexander Larsson <alexl@redhat.com>
7880 * dbus/dbus-transport-unix.c (unix_do_iteration):
7881 Unlock the connection mutex during a blocking select call.
7882 Add todo about how we need a way to wake up the select.
7884 * dbus/dbus-connection-internal.h:
7885 * dbus/dbus-connection.c:
7886 Add _dbus_connection_lock and _dbus_connection_unlock.
7888 2003-02-19 Havoc Pennington <hp@pobox.com>
7890 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
7891 Doxyfile.in, not Doxyfile
7893 * dbus/dbus-keyring.c: do some hacking on this
7895 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
7897 * dbus/dbus-errors.c (dbus_set_error_const): do not call
7899 (dbus_set_error): remove dbus_error_init, check for message ==
7900 NULL *before* we sprintf into it, and add @todo about including
7901 system headers in this file
7903 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
7905 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
7907 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
7908 get various bits of user information based on either username
7910 (_dbus_homedir_from_username): new function
7912 2003-02-19 Anders Carlsson <andersca@codefactory.se>
7915 Add check for nonposix getpwnam_r
7917 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
7918 Align the pool element size to a sizeof (void *) boundary.
7920 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
7921 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
7922 General Solaris fixes.
7924 * test/data/valid-messages/simplest-manual.message:
7925 Explicitly state that we want little-endian packing.
7927 2003-02-19 Mikael Hallendal <micke@codefactory.se>
7929 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
7931 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
7932 Added to create a transport connecting using a tcp/ip socket.
7934 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
7935 to a tcp socket at given host and port.
7936 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
7939 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
7941 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
7942 Added to create a server listening on a TCP/IP socket.
7944 2003-02-19 Havoc Pennington <hp@pobox.com>
7946 Throughout: mop up all the Doxygen warnings and undocumented
7949 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
7950 to search any paths.
7952 * dbus/dbus-threads.c: move global mutex initializers to
7953 dbus-internals.h, multiple prototypes was confusing doxygen
7954 besides being kind of ugly
7956 * Doxyfile (PREDEFINED): have Doxygen define
7957 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
7958 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
7959 (do not abuse the feature! it's for stuff like the autogenerated
7960 macros in dbus-md5.c, not just for things you don't feel like
7963 2003-02-18 Havoc Pennington <hp@pobox.com>
7965 * dbus/dbus-string.c (_dbus_string_zero): new function
7967 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
7968 wrap it in some dbus-friendly API
7970 * dbus/dbus-types.h: add 16-bit types
7972 2003-02-18 Joe Shaw <joe@assbarn.com>
7974 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
7975 credentials from our currently running process.
7976 (get_word): Fix a buglet where we were copying the entire length
7977 instead of relative to our position.
7979 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
7980 keys on the stack... it's 640k of data.
7982 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
7983 read the credentials byte off the socket, even if we don't have
7985 (_dbus_poll): Implement poll() using select() for systems which
7988 * glib/test-dbus-glib.c (main): Print out an error if no
7989 parameters are given.
7991 * test/data/auth/fallback.auth-script: Added. Tests that a client
7992 can fallback to a secondary auth mechanism if the first fails.
7994 2003-02-18 Havoc Pennington <hp@pobox.com>
7998 2003-02-17 Havoc Pennington <hp@pobox.com>
8000 * doc/dbus-specification.sgml: lots of cosmetic
8001 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
8002 env variable to DBUS_BUS_ADDRESS, s/client/application/,
8003 s/server/bus/ (except in authentication section). Add a section
8004 "Message Bus Message Routing"
8006 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
8012 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8014 * doc/dbus-specification.sgml:
8015 Specification updates.
8017 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8019 * bus/activation.c: (bus_activation_init), (child_setup),
8020 (bus_activation_activate_service):
8022 * bus/main.c: (main):
8023 Set DBUS_ADDRESS environment variable.
8025 * dbus/dbus-errors.c: (dbus_set_error):
8026 Don't use va_copy since that's a C99 feature.
8028 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
8029 (_dbus_spawn_async):
8030 * dbus/dbus-sysdeps.h:
8031 Add child_setup_func to _dbus_spawn_async.
8033 * doc/dbus-specification.sgml:
8034 Update specification.
8036 * test/spawn-test.c: (setup_func), (main):
8039 2003-02-17 Alexander Larsson <alexl@redhat.com>
8041 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
8044 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8048 * doc/dbus-test-plan.sgml:
8049 Add test plan document.
8054 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8056 * dbus/dbus-message.c: (decode_header_data),
8057 (_dbus_message_loader_return_buffer):
8058 Set the header padding amount when loading a message.
8060 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8062 * bus/dispatch.c: (send_one_message):
8063 Only send broadcast messages to registered connections.
8065 * dbus/dbus-message.c: (dbus_message_name_is):
8066 * dbus/dbus-message.h:
8067 New convenience function.
8069 * dbus/dbus-transport-debug.c: (do_reading):
8070 Only dispatch one message per run.
8073 * test/bus-test.c: (new_connection_callback), (die),
8074 (test_hello_client1_handler), (test_hello_client2_handler),
8075 (test_hello_replies), (main):
8077 * test/bus-test-loop.[ch]:
8080 2003-02-16 Havoc Pennington <hp@pobox.com>
8082 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
8083 backward conditional
8085 2003-02-16 Alexander Larsson <alexl@redhat.com>
8087 * dbus/dbus-connection.c:
8088 Implement sent_message_with_reply. (with_reply_and block is still
8090 Made dispatch_message not lose message if OOM.
8092 * dbus/dbus-errors.h:
8093 Add NoReply error (for reply timeouts).
8095 2003-02-16 Alexander Larsson <alexl@redhat.com>
8097 * dbus/dbus-hash.c (_dbus_hash_table_unref):
8098 Actually free keys and values when destroying hashtable.
8100 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8102 * dbus/dbus-auth.c: (client_try_next_mechanism):
8105 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
8106 Return TRUE if there's no thread implementation around.
8108 * glib/dbus-gmain.c: (free_source),
8109 (dbus_connection_hookup_with_g_main):
8110 Make sure to remove the GSource when the connection is finalized.
8112 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8114 * bus/dispatch.c: (bus_dispatch_message_handler):
8115 * dbus/dbus-errors.h:
8116 Return an error if someone tries to send a message to a service
8119 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8121 * bus/activation.c: (load_directory), (bus_activation_init),
8122 (bus_activation_activate_service):
8125 (bus_driver_handle_activate_service), (bus_driver_handle_message):
8126 More work on the activation handling.
8128 * dbus/dbus-errors.h:
8129 Add some error messages
8131 * dbus/dbus-message.c: (dbus_message_new_error_reply):
8132 * dbus/dbus-message.h:
8133 New function that creates an error message.
8135 * dbus/dbus-protocol.h:
8136 Add ACTIVATE_SERVER message.
8138 * dbus/dbus-server-unix.c: (unix_handle_watch),
8139 (_dbus_server_new_for_domain_socket):
8140 Call _dbus_fd_set_close_on_exec.
8142 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
8143 (_dbus_spawn_async), (_dbus_disable_sigpipe),
8144 (_dbus_fd_set_close_on_exec):
8145 * dbus/dbus-sysdeps.h:
8146 Add _dbus_fd_set_close_on exec function. Also add function that checks
8147 that all open fds are set to close-on-exec and warns otherwise.
8149 * dbus/dbus-transport-unix.c:
8150 (_dbus_transport_new_for_domain_socket):
8151 Call _dbus_fd_set_close_on_exec.
8153 2003-02-16 Havoc Pennington <hp@pobox.com>
8155 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
8156 allow people to avoid setting SIGPIPE to SIG_IGN
8157 (_dbus_connection_new_for_transport): disable SIGPIPE unless
8158 we've been asked not to
8160 2003-02-15 Anders Carlsson <andersca@codefactory.se>
8162 * dbus/dbus-list.c: (_dbus_list_append_link),
8163 (_dbus_list_prepend_link):
8164 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
8168 2003-02-15 Anders Carlsson <andersca@codefactory.se>
8171 * bus/activation.c: (bus_activation_entry_free),
8172 (add_desktop_file_entry), (load_directory), (bus_activation_init):
8174 * bus/main.c: (main):
8175 Add simple activation support, doesn't work yet though.
8177 2003-02-15 Zack Rusin <zack@kde.org>
8179 * qt/dbus-qthread.cpp: small casting fix
8181 2003-02-15 Anders Carlsson <andersca@codefactory.se>
8183 * dbus/dbus-errors.c: (dbus_set_error):
8184 * dbus/dbus-errors.h:
8185 Add a few errors and make dbus_set_error void.
8187 * dbus/dbus-sysdeps.c:
8188 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
8189 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
8190 * dbus/dbus-sysdeps.h:
8191 Add _dbus_spawn_async.
8193 * test/spawn-test.c: (main):
8194 Test for _dbus_spawn_async.
8196 2003-02-15 Anders Carlsson <andersca@codefactory.se>
8198 * dbus/dbus-internals.h:
8199 Fix build without tests.
8201 * dbus/dbus-list.c: (alloc_link):
8202 Fix a segfault when a malloc fails.
8204 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
8205 (dbus_malloc0), (dbus_realloc):
8206 Add support for malloc debugging.
8208 2003-02-15 Alexander Larsson <alexl@redhat.com>
8210 * dbus/dbus-threads.c:
8211 * dbus/dbus-threads.h:
8212 Add condvars. Remove static mutext from API.
8213 Implement static mutexes by initializing them from threads_init.
8215 * glib/dbus-gthread.c:
8216 * qt/dbus-qthread.cpp:
8217 Update with the thread api changes.
8222 Turn StaticMutex into normal mutex + init function.
8223 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
8224 _dbus_list_append_link, _dbus_list_prepend_link
8227 * dbus/dbus-sysdeps.c:
8228 * dbus/dbus-sysdeps.h:
8229 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
8230 _dbus_atomic_dec. Only slow fallback implementation at the moment.
8232 * dbus/dbus-protocol.h:
8233 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
8235 * dbus/dbus-message.c:
8236 Make ref/unref atomic.
8239 * dbus/dbus-connection-internal.h:
8240 * dbus/dbus-connection.c:
8241 * dbus/dbus-connection.h:
8243 Change _peek to _borrow,_return & _steal_borrowed.
8244 Change disconnect callback to event.
8245 Make dbus_connection_dispatch_messages reentrant.
8247 * dbus/dbus-transport.c:
8248 Don't ref the connection on calls to the transport
8251 * dbus/dbus-message-handler.c:
8254 * glib/dbus-gmain.c:
8255 Don't use peek_message anymore
8258 * test/debug-thread.c:
8259 * test/debug-thread.h:
8260 Simple thread implementation that asserts() on deadlocks in
8261 single-threaded code.
8264 (main) Call debug_threads_init.
8267 Use disconnect message instead of disconnect callback.
8271 Don't call dbus_connection_set_disconnect_function. Instead export
8272 bus_connection_disconnect.
8275 Call bus_connection_disconnect when we get a disconnected message.
8277 2003-02-15 Havoc Pennington <hp@pobox.com>
8279 * dbus/dbus-message.c (dbus_message_new): fool around with the
8282 2003-02-14 Havoc Pennington <hp@pobox.com>
8284 * dbus/dbus-mempool.c: fail if the debug functions so indicate
8286 * dbus/dbus-memory.c: fail if the debug functions indicate we
8289 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
8290 (_dbus_decrement_fail_alloc_counter): debug functions to
8291 simulate memory allocation failures
8293 2003-02-14 Havoc Pennington <hp@pobox.com>
8295 * dbus/dbus-errors.h (struct DBusError): add a word of padding
8298 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8300 * bus/driver.c: (bus_driver_handle_hello):
8302 * bus/services.c: (bus_service_lookup):
8303 Reorder message sending so we get a more sane order.
8305 * test/bus-test.c: (message_handler):
8308 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8310 * bus/driver.c: (bus_driver_send_service_deleted),
8311 (bus_driver_send_service_created), (bus_driver_send_service_lost),
8312 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
8313 (bus_driver_send_welcome_message),
8314 (bus_driver_handle_list_services),
8315 (bus_driver_handle_acquire_service),
8316 (bus_driver_handle_service_exists):
8317 * dbus/dbus-bus.c: (dbus_bus_register_client),
8318 (dbus_bus_acquire_service), (dbus_bus_service_exists):
8319 * dbus/dbus-errors.c: (dbus_result_to_string):
8320 * dbus/dbus-errors.h:
8321 * dbus/dbus-message.c: (dbus_message_append_args),
8322 (dbus_message_append_args_valist), (dbus_message_get_args),
8323 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
8324 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
8325 (dbus_message_iter_get_byte_array),
8326 (dbus_message_iter_get_string_array), (message_iter_test),
8327 (check_message_handling), (_dbus_message_test):
8328 * dbus/dbus-message.h:
8329 * test/bus-test.c: (main):
8330 Change fields to arguments in messages, so that they won't be
8331 confused with header fields.
8333 * glib/test-dbus-glib.c: (main):
8334 Remove append_fields from hello message.
8336 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8338 * dbus/dbus-errors.c:
8339 * dbus/dbus-message.c:
8340 * dbus/dbus-string.c:
8341 Documentation fixes.
8343 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8345 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
8347 Implement support for timeouts in dbus-glib.
8349 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8351 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8352 * dbus/dbus-message.c: (process_test_subdir):
8353 * test/break-loader.c: (find_breaks_based_on):
8354 Plug some memory leaks.
8356 2003-02-13 Richard Hult <rhult@codefactory.se>
8358 * bus/main.c: Fix build.
8360 * dbus/dbus-errors.h:
8361 * dbus/dbus-errors.c: Fix copyright for Anders.
8363 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8368 * bus/connection.c: (bus_connection_foreach):
8371 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
8372 (unescape_string), (new_section), (parse_section_start),
8373 (parse_key_value), (report_error), (bus_desktop_file_load),
8374 (bus_desktop_file_get_string):
8375 * bus/desktop-file.h:
8376 Use DBusError for error reporting.
8378 * bus/dispatch.c: (send_one_message),
8379 (bus_dispatch_message_handler):
8380 * bus/driver.c: (bus_driver_send_service_deleted),
8381 (bus_driver_send_service_created), (bus_driver_send_service_lost),
8382 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
8383 (bus_driver_send_welcome_message),
8384 (bus_driver_handle_list_services),
8385 (bus_driver_handle_acquire_service),
8386 (bus_driver_handle_service_exists):
8387 * bus/loop.c: (bus_loop_run):
8389 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
8391 * bus/utils.c: (bus_wait_for_memory):
8393 New files with general utility functions.
8395 * dbus/dbus-internals.h:
8396 Remove _DBUS_HANDLE_OOM.
8398 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8400 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
8401 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
8402 * dbus/dbus-errors.h:
8403 Add DBusError structure.
8405 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8407 * test/data/valid-messages/standard-acquire-service.message:
8408 * test/data/valid-messages/standard-hello.message:
8409 * test/data/valid-messages/standard-list-services.message:
8410 * test/data/valid-messages/standard-service-exists.message:
8411 Add some standard messages.
8413 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8415 * bus/driver.c: (bus_driver_send_welcome_message),
8416 (bus_driver_handle_list_services),
8417 (bus_driver_handle_acquire_service),
8418 (bus_driver_handle_service_exists), (bus_driver_handle_message):
8419 Update for API changes in libdbus.
8421 * dbus/dbus-message.c: (dbus_message_new_reply):
8422 * dbus/dbus-message.h:
8423 Remove the name argument. The spec states that replies shouldn't
8426 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8428 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
8429 (report_error), (bus_desktop_file_load), (lookup_section),
8430 (lookup_line), (bus_desktop_file_get_raw),
8431 (bus_desktop_file_get_string):
8432 * bus/desktop-file.h:
8433 Some fixes, and new functions for getting a key value from a section.
8435 2003-02-13 Havoc Pennington <hp@pobox.com>
8437 * test/data/auth/fail-after-n-attempts.auth-script: new test
8439 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
8442 2003-02-13 Havoc Pennington <hp@pobox.com>
8444 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
8445 dbus_credentials_match were backward
8447 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
8448 NO_CREDENTIALS and ROOT_CREDENTIALS
8450 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
8451 into here. Never process more commands after we've reached an
8452 end state; store further data as unused bytes.
8454 * test/data/auth/*: add more auth tests
8456 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
8457 command to match exact string and EXPECT_UNUSED to match unused
8460 * test/Makefile.am (dist-hook): fix to dist all the test stuff
8462 2003-02-12 Havoc Pennington <hp@pobox.com>
8464 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
8465 \r off of popped lines
8467 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
8470 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
8473 2003-02-12 Havoc Pennington <hp@pobox.com>
8475 * dbus/Makefile.am: remove break-loader from the build, since it
8478 * configure.in: add --enable-gcov to turn on coverage profiling
8479 flags and disable optimization
8481 2003-02-10 Havoc Pennington <hp@pobox.com>
8483 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
8484 initial cut at test framework for DBusAuth from laptop.
8485 Doesn't quite work yet but it compiles and I need to get
8486 it off the 266mhz laptop. ;-)
8488 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
8489 fix a memleak in error case
8491 2003-02-12 Anders Carlsson <andersca@codefactory.se>
8494 * bus/desktop-file.c:
8495 * bus/desktop-file.h:
8496 Add a desktop file parser.
8498 2003-02-11 Zack Rusin <zack@kde.org>
8500 * qt/message.[h|cpp]: sample implementation
8501 of the KDE wrapper for DBusMessage
8503 2003-02-09 Zack Rusin <zack@kde.org>
8505 * test/bus-test.c: make_it_compile
8506 * doc/dbus-specification.sgml: minimal semantic fix
8508 2003-02-06 Anders Carlsson <andersca@codefactory.se>
8514 2003-02-06 Anders Carlsson <andersca@codefactory.se>
8517 * dbus/dbus-break-loader.c:
8519 * test/break-loader.c:
8520 Move dbus-break-loader to test/ and rename it to break-loader.
8522 2003-02-02 Havoc Pennington <hp@pobox.com>
8524 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
8525 for code to manage cookies in your home directory
8527 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
8529 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
8530 to authenticate, then disconnect the client.
8532 2003-02-03 Alexander Larsson <alexl@redhat.com>
8534 * dbus/dbus-message.c (dbus_message_append_fields):
8537 2003-02-02 Anders Carlsson <andersca@codefactory.se>
8539 * doc/dbus-specification.sgml:
8540 Update address format section.
8542 2003-02-02 Anders Carlsson <andersca@codefactory.se>
8545 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
8546 (message_handler), (new_connection_callback), (loop_quit),
8550 2003-02-02 Anders Carlsson <andersca@codefactory.se>
8552 * bus/driver.c: (bus_driver_handle_service_exists):
8553 Simplify the code a bit.
8555 * dbus/dbus-bus.c: (dbus_bus_service_exists):
8558 2003-02-02 Anders Carlsson <andersca@codefactory.se>
8561 Add libdbus-daemon.la and link to it.
8563 2003-02-01 James Willcox <jwillcox@gnome.org>
8565 * bus/driver.c: (bus_driver_handle_own_service):
8566 Actually include the service reply code in the message.
8568 2003-02-02 Anders Carlsson <andersca@codefactory.se>
8570 * bus/driver.c: (bus_driver_handle_service_exists):
8571 Don't unref the incoming message.
8573 2003-02-02 Anders Carlsson <andersca@codefactory.se>
8575 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
8577 2003-02-02 Anders Carlsson <andersca@codefactory.se>
8579 * dbus/dbus-server.c: (dbus_server_listen):
8580 * dbus/dbus-transport.c: (_dbus_transport_open):
8581 ifdef out the calls to the debug transport and server.
8583 2003-02-02 Alexander Larsson <alexl@redhat.com>
8585 * dbus/dbus-watch.c (dbus_watch_get_flags):
8586 Add note in the docs that ERROR or HANGUP won't be returned
8587 and are assumed always on.
8589 * glib/dbus-gmain.c (add_watch):
8590 Always add IO_ERR | IO_HUP
8592 * dbus/dbus-message.h:
8593 Add semicolon after dbus_message_iter_get_string_array().
8594 Makes qt code build again
8596 2003-02-01 Anders Carlsson <andersca@codefactory.se>
8598 * bus/driver.c: (create_unique_client_name),
8599 (bus_driver_handle_hello):
8600 Don't take a name, just use a numeric id to identify
8604 * dbus/dbus-bus.c: (dbus_bus_register_client),
8605 (dbus_bus_acquire_service), (dbus_bus_service_exists):
8607 Add new convenience functions for communicating with the bus.
8609 * dbus/dbus-message.h:
8611 * dbus/dbus-protocol.h:
8614 2003-02-01 Alexander Larsson <alexl@redhat.com>
8616 * dbus/dbus-message.c (dbus_message_append_fields):
8617 Add some more doc comments.
8619 2003-02-01 Havoc Pennington <hp@pobox.com>
8621 * dbus/dbus-break-loader.c (randomly_modify_length): change
8622 a 4-byte value in the message as if it were a length
8624 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
8625 execute bit on saved files
8627 2003-02-01 Havoc Pennington <hp@pobox.com>
8629 * dbus/dbus-break-loader.c (main): new program to find messages
8630 that break the loader.
8632 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
8633 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
8635 * dbus/dbus-string.c (_dbus_string_set_byte): new
8637 2003-01-31 Havoc Pennington <hp@pobox.com>
8639 * dbus/dbus-message.c: refactor the test code to be more general,
8640 in preparation for writing a "randomly permute test cases to
8641 try to break the loader" program.
8643 2003-01-31 Havoc Pennington <hp@pobox.com>
8645 * doc/dbus-specification.sgml: work on the specification
8647 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
8648 the protocol version of the message.
8650 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
8651 no longer specifies that.
8652 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
8655 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
8656 "break" for DBUS_TYPE_NIL, remove @todo
8658 2003-01-31 Havoc Pennington <hp@pobox.com>
8660 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
8661 just set_is_error/get_is_error as this is a commonly-used
8662 function, and write docs.
8664 2003-01-31 Anders Carlsson <andersca@codefactory.se>
8666 * dbus/dbus-address.c: (dbus_address_entry_free):
8667 Free key and value lists.
8669 * dbus/dbus-internals.c: (_dbus_type_to_string):
8670 Add the types we didn't have.
8672 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
8673 (_dbus_marshal_validate_arg):
8676 * dbus/dbus-message.c: (dbus_message_set_sender):
8677 Remove todo about being able to set sender to NULL.
8679 (dbus_message_set_is_error_reply),
8680 (dbus_message_get_is_error_reply):
8681 * dbus/dbus-message.h:
8684 * dbus/dbus-protocol.h:
8685 Add error reply flag.
8687 * test/data/valid-messages/opposite-endian.message:
8688 Add NIL type to test.
8690 2003-01-31 Havoc Pennington <hp@pobox.com>
8692 * doc/dbus-specification.sgml: fully specify the header. Add
8693 flags and major protocol version, and change header/body len to
8696 * dbus/dbus-message-builder.c (append_saved_length): append length
8699 * dbus/dbus-message.c (dbus_message_create_header): change header
8700 length and body length to unsigned. Add the new fields from the
8702 (_dbus_message_loader_return_buffer): unsigned header/body len
8704 2003-01-30 Havoc Pennington <hp@pobox.com>
8706 * dbus/dbus-auth.c: rework to use only REJECTED, no
8709 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
8710 use REJECTED, suggested by Mark McLoughlin
8712 2003-01-30 Havoc Pennington <hp@pobox.com>
8714 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
8715 a better way to report errors here. e.g. "unix address lacks
8716 path" or something. also "no such file" when the path doesn't
8719 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
8721 (dbus_parse_address): add @todo about documenting address format,
8722 and allowing , and ; to be escaped
8724 2003-01-30 Anders Carlsson <andersca@codefactory.se>
8727 Add dbus-address.[ch]
8729 * dbus/dbus-address.c: (dbus_address_entry_free),
8730 (dbus_address_entries_free), (create_entry),
8731 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
8732 (dbus_parse_address), (_dbus_address_test):
8733 * dbus/dbus-address.h:
8734 New files for dealing with address parsing.
8736 * dbus/dbus-connection.c:
8737 Document timeout functions.
8739 * dbus/dbus-message.c:
8740 Document dbus_message_new_from_message.
8742 * dbus/dbus-server-debug.c:
8745 * dbus/dbus-server.c: (dbus_server_listen):
8746 Parse address and use correct server implementation.
8748 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
8749 * dbus/dbus-string.h:
8750 New function with test.
8752 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
8756 * dbus/dbus-transport-debug.c:
8759 * dbus/dbus-transport.c: (_dbus_transport_open):
8760 Parse address and use correct transport implementation.
8762 2003-01-30 Havoc Pennington <hp@pobox.com>
8764 * dbus/dbus-message.c: use message->byte_order instead of
8765 DBUS_COMPILER_BYTE_ORDER throughout.
8766 (dbus_message_create_header): pad header to align the
8767 start of the body of the message to 8-byte boundary
8769 * dbus/dbus-marshal.h: make all the demarshalers take const
8770 DBusString arguments.
8772 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
8773 validate message args here, so we don't have to do slow validation
8774 later, and so we catch bad messages as they are incoming. Also add
8775 better checks on header_len and body_len. Also fill in
8778 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
8779 implemented properly)
8780 (_dbus_string_validate_nul): new function to check all-nul
8782 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
8783 get_arg_end_pos and remove all validation
8784 (_dbus_marshal_validate_arg): actually do validation here.
8786 2003-01-29 Havoc Pennington <hp@pobox.com>
8788 * dbus/dbus-message.c (check_message_handling): fix assertion
8789 failure on set_client_serial
8791 2003-01-28 Havoc Pennington <hp@pobox.com>
8793 * dbus/dbus-server-debug.c: Add doc section comments
8795 * dbus/dbus-transport-debug.c: add doc section comments
8797 2003-01-28 Havoc Pennington <hp@redhat.com>
8799 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
8800 the reverse order from how I had it
8801 (_dbus_string_base64_encode): reverse encoding order. I was
8802 basically byteswapping everything during encoding.
8804 2003-01-28 Anders Carlsson <andersca@codefactory.se>
8806 * dbus/dbus-connection-internal.h:
8807 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
8808 (_dbus_connection_remove_timeout):
8809 Add functions for adding and removing timeouts.
8811 * dbus/dbus-message.c: (dbus_message_new_from_message):
8812 Add new function that takes a message and creates an exact
8813 copy of it, but with the refcount set to 1.
8814 (check_message_handling):
8817 * dbus/dbus-server-protected.h:
8818 * dbus/dbus-server.c: (_dbus_server_init_base),
8819 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
8820 (dbus_server_set_timeout_functions):
8821 (_dbus_server_remove_timeout):
8822 New functions so that a server can add and remove timeouts.
8824 (dbus_server_listen):
8825 Add commented out call to dbus_server_debug_new.
8827 * dbus/dbus-timeout.c: (_dbus_timeout_new):
8828 Actually set the handler, doh.
8830 * dbus/dbus-transport.c: (_dbus_transport_open):
8831 Add commented out call to dbus_transport_debug_client_new.
8834 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
8836 2003-01-28 Havoc Pennington <hp@pobox.com>
8838 * dbus/dbus-message.c (check_message_handling): function to check
8839 on the loaded message, iterates over it etc.
8841 2003-01-28 Havoc Pennington <hp@pobox.com>
8843 * test/Makefile.am (dist-hook): fix make distdir
8845 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
8847 2003-01-27 Havoc Pennington <hp@pobox.com>
8849 * dbus/dbus-mempool.c (time_for_size): replace printf with
8852 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
8853 empty lines; fix the SAVE_LENGTH stuff to be
8854 START_LENGTH/END_LENGTH so it actually works; couple other
8857 * test/Makefile.am (dist-hook): add dist-hook for .message files
8859 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
8860 can be constant or locked.
8861 (_dbus_string_free): allow freeing a const string as
8864 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
8866 * dbus/dbus-test-main.c (main): take an argument which is the
8867 directory containing test data
8869 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
8870 argument to this and load all the messages in test/data/
8871 checking that they can be loaded or not loaded as appropriate.
8873 2003-01-27 Anders Carlsson <andersca@codefactory.se>
8875 * bus/dispatch.c: (bus_dispatch_message_handler):
8876 Dispatch messages sent to services.
8878 * bus/driver.c: (bus_driver_send_service_deleted),
8879 (bus_driver_send_service_created), (bus_driver_send_service_lost),
8880 (bus_driver_send_service_acquired):
8881 Add helper functions for sending service related messages.
8883 (bus_driver_send_welcome_message):
8884 Send HELLO_REPLY instead of WELCOME.
8886 (bus_driver_handle_list_services):
8887 Send LIST_SERVICES_REPLY instead of SERVICES.
8889 (bus_driver_handle_own_service),
8890 (bus_driver_handle_service_exists):
8891 New message handlers.
8893 (bus_driver_handle_message):
8894 Invoke new message handlers.
8896 (bus_driver_remove_connection):
8897 Don't remove any services here since that's done automatically
8898 by bus_service_remove_owner now.
8901 New function signatures.
8903 * bus/services.c: (bus_service_add_owner):
8904 Send ServiceAcquired message if we're the only primary owner.
8906 (bus_service_remove_owner):
8907 Send ServiceAcquired/ServiceLost messages.
8909 (bus_service_set_prohibit_replacement),
8910 (bus_service_get_prohibit_replacement):
8911 Functions for setting prohibit replacement.
8913 (bus_service_has_owner):
8914 New function that checks if a connection is in the owner queue of
8918 Add new function signatures.
8920 * dbus/dbus-list.c: (_dbus_list_test):
8921 Add tests for _dbus_list_remove_last and traversing the list backwards.
8924 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
8925 go any further, so return NULL then.
8927 * dbus/dbus-protocol.h:
8928 Add new messages, service flags and service replies.
8930 2003-01-26 Havoc Pennington <hp@pobox.com>
8932 * dbus/dbus-message-builder.c: implement, completely untested.
8934 * test/data/*: add data to be used in testing.
8935 ".message" files are our simple loadable text format.
8936 ".message-raw" will be binary dumps of messages.
8938 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
8940 2003-01-26 Havoc Pennington <hp@pobox.com>
8942 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
8944 * dbus/dbus-errors.c (dbus_result_to_string): add
8947 * dbus/dbus-message-builder.c: new file, will contain code to load
8948 up messages from files. Not implemented yet.
8950 2003-01-26 Havoc Pennington <hp@pobox.com>
8952 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
8953 the sender by setting to NULL
8955 2003-01-26 Havoc Pennington <hp@pobox.com>
8957 The unit tests pass, but otherwise untested. If it breaks, the
8958 tests should have been better. ;-)
8960 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
8963 * dbus/dbus-message.c: redo everything so we maintain
8964 message->header as the only copy of the various fields.
8965 This avoids the possibility of out-of-memory in some cases,
8966 for example dbus_message_lock() can't run out of memory anymore,
8967 and avoids extra copying. Figured I may as well go ahead and do
8968 this since it was busted for dbus_message_lock to not return
8969 failure on OOM, and dbus_message_write_header was totally
8970 unchecked for OOM. Also fixed some random other bugs.
8972 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
8973 that strings are nul-terminated. Also, end_pos can be equal
8974 to string length just not greater than, I think.
8975 (_dbus_marshal_set_int32): new function
8976 (_dbus_marshal_set_uint32): new function
8977 (_dbus_marshal_set_string): new function
8979 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
8980 a warning, init timeout_list to NULL
8981 (dbus_connection_send_message): don't use uninitialized variable
8984 * dbus/dbus-string.c (_dbus_string_replace_len): new function
8986 2003-01-26 Anders Carlsson <andersca@codefactory.se>
8988 * bus/driver.c: (bus_driver_handle_hello),
8989 (bus_driver_send_welcome_message):
8992 2003-01-26 Anders Carlsson <andersca@codefactory.se>
8994 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
8995 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
8996 (dbus_connection_unref):
8997 * dbus/dbus-marshal.c: (_dbus_marshal_test):
8998 * dbus/dbus-message.c: (dbus_message_unref),
9001 (dbus_message_get_fields):
9002 Remove debugging printout.
9004 (_dbus_message_loader_return_buffer):
9005 Don't store the header string.
9007 (_dbus_message_test):
9010 2003-01-26 Richard Hult <rhult@codefactory.se>
9012 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
9013 the file descriptor list, since it can change under us.
9015 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9017 * glib/dbus-gmain.c: (dbus_connection_prepare),
9018 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
9019 (remove_watch), (dbus_connection_hookup_with_g_main):
9020 Rewrite the glib handling to use its own GSource instead of a
9021 GIOChannel so we can catch messages put in the queue while waiting
9024 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9027 * bus/connection.c: (connection_disconnect_handler),
9028 (connection_watch_callback), (bus_connection_setup):
9029 * bus/dispatch.c: (send_one_message),
9030 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
9031 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
9033 * bus/driver.c: (bus_driver_send_service_deleted),
9034 (bus_driver_send_service_created), (bus_driver_handle_hello),
9035 (bus_driver_send_welcome_message),
9036 (bus_driver_handle_list_services), (bus_driver_remove_connection),
9037 (bus_driver_handle_message):
9039 Refactor code, put the message dispatching in its own file. Use
9040 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
9043 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9045 * dbus/dbus-internals.h:
9046 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
9048 * dbus/dbus-message.c: (dbus_message_get_sender):
9049 * dbus/dbus-message.h:
9050 Implement dbus_message_get_sender.
9052 * dbus/dbus-protocol.h:
9053 Add message and service defines.
9055 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9057 * dbus/dbus-connection.c: (dbus_connection_send_message):
9058 * dbus/dbus-message-internal.h:
9059 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
9060 (dbus_message_write_header):
9061 Remove _dbus_messag_unlock and don't set the client serial on a
9062 message if one already exists.
9064 2003-01-24 Havoc Pennington <hp@pobox.com>
9066 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
9069 * bus/driver.c (bus_driver_handle_list_services): fix a leak
9072 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9074 * dbus/dbus-list.c: (alloc_link), (free_link):
9075 Use a memory pool for the links.
9077 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9079 * bus/connection.c: (bus_connection_foreach):
9081 Add new bus_connection_foreach function.
9083 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
9084 Add function that broadcasts a message to all clients.
9086 (bus_driver_send_service_created), (bus_driver_handle_hello),
9087 (bus_driver_send_welcome_message),
9088 (bus_driver_handle_list_services), (bus_driver_message_handler):
9089 Implement functions that take care of listing services, and notifying
9090 clients when new services are created.
9092 * bus/services.c: (bus_services_list):
9094 Add new function that returns an array of strings with the currently
9095 registered services.
9098 * glib/dbus-gmain.c:
9099 Update copyright year.
9101 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9103 * dbus/dbus-connection.c: (dbus_connection_send_message):
9104 Unlock the message in case it was sent earlier.
9106 (dbus_connection_send_message_with_reply_and_block):
9107 Remove the reply message from the list.
9109 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
9110 Set array_len and new_pos correctly.
9112 (_dbus_marshal_test):
9113 Remove debug output.
9115 * dbus/dbus-message-internal.h:
9116 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
9117 New function that returns the reply serial.
9119 (_dbus_message_unlock):
9120 New function that unlocks a message and resets its header.
9122 (dbus_message_append_string_array),
9123 (dbus_message_get_fields_valist),
9124 (dbus_message_iter_get_field_type),
9125 (dbus_message_iter_get_string_array),
9126 (dbus_message_get_fields),
9127 (dbus_message_append_fields_valist):
9128 Handle string arrays.
9130 (dbus_message_set_sender):
9131 Make this function public since the bus daemon needs it.
9133 (decode_header_data):
9134 Set the reply serial to -1 initially.
9136 * dbus/dbus-message.h:
9137 Add dbus_message_set_sender.
9139 2003-01-24 Havoc Pennington <hp@pobox.com>
9141 * doc/dbus-specification.sgml: add some stuff
9143 2003-01-22 Havoc Pennington <hp@pobox.com>
9145 * doc/dbus-specification.sgml: Start to document the protocol.
9147 2003-01-22 Havoc Pennington <hp@pobox.com>
9149 * dbus/dbus-connection.c
9150 (dbus_connection_send_message_with_reply_and_block): add some @todo
9152 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
9154 2003-01-21 Havoc Pennington <hp@pobox.com>
9156 (patch untested because can't compile)
9158 * bus/driver.c (create_unique_client_name): make this function
9159 never recycle client names. Also, caller should initialize
9162 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
9164 2003-01-21 Anders Carlsson <andersca@codefactory.se>
9166 * dbus/dbus-marshal.c: (_dbus_marshal_double),
9167 (_dbus_marshal_int32), (_dbus_marshal_uint32),
9168 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
9169 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
9170 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
9171 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
9172 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
9173 * dbus/dbus-marshal.h:
9174 * dbus/dbus-protocol.h:
9175 Add support for marshalling and demarshalling integer, double
9178 2003-01-21 Anders Carlsson <andersca@codefactory.se>
9183 * bus/connection.c: (connection_disconnect_handler):
9184 Remove the connection from the bus driver's list.
9186 (connection_watch_callback): Dispatch messages.
9188 (free_connection_data): Free connection name.
9190 (bus_connection_setup): Add connection to the bus driver's list.
9191 (bus_connection_remove_owned_service):
9192 (bus_connection_set_name), (bus_connection_get_name):
9193 Add functions for setting and getting the connection's name.
9196 Add function headers.
9198 * bus/driver.c: (create_unique_client_name),
9199 (bus_driver_handle_hello_message),
9200 (bus_driver_send_welcome_message), (bus_driver_message_handler),
9201 (bus_driver_add_connection), (bus_driver_remove_connection):
9204 * bus/services.c: (bus_service_free):
9206 New file that handles communication and registreation with the bus
9209 2003-01-21 Anders Carlsson <andersca@codefactory.se>
9211 * dbus/dbus-connection.c: (dbus_connection_send_message):
9212 Add a new client_serial parameter.
9214 (dbus_connection_send_message_with_reply):
9215 Remove a @todo since we've implemented the blocking function.
9217 (dbus_connection_send_message_with_reply_and_block):
9218 New function that sends a message and waits for a reply and
9219 then returns the reply.
9221 * dbus/dbus-connection.h:
9224 * dbus/dbus-errors.c: (dbus_result_to_string):
9225 * dbus/dbus-errors.h:
9226 Add new DBUS_RESULT.
9228 * dbus/dbus-message-internal.h:
9229 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
9230 (_dbus_message_set_sender), (dbus_message_write_header),
9231 (dbus_message_new_reply), (decode_header_data),
9232 (_dbus_message_loader_return_buffer), (_dbus_message_test):
9233 * dbus/dbus-message.h:
9234 Add new functions that set the reply serial and sender.
9235 Also marshal and demarshal them correctly and add test.
9237 * dbus/dbus-protocol.h:
9238 Add new DBUS_MESSAGE_TYPE_SENDER.
9241 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
9242 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
9243 (dbus_connection_hookup_with_g_main):
9244 * glib/test-dbus-glib.c: (main):
9245 Rewrite to use GIOChannel and remove the GSource crack.
9247 * test/echo-client.c: (main):
9248 * test/watch.c: (check_messages):
9249 Update for changed APIs
9251 2003-01-19 Anders Carlsson <andersca@codefactory.se>
9253 * dbus/Makefile.am: Add dbus-timeout.[cħ]
9255 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
9256 Create a DBusTimeoutList.
9257 (dbus_connection_set_timeout_functions): Add new function to
9258 set timeout callbacks
9260 * dbus/dbus-connection.h: Add public DBusTimeout API.
9262 * dbus/dbus-message.c: (dbus_message_get_service):
9263 * dbus/dbus-message.h: New function.
9265 * dbus/dbus-server.c: Fix small doc typo.
9267 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
9269 2003-01-19 Anders Carlsson <andersca@codefactory.se>
9271 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
9272 of the string, just as long as specified.
9274 2003-01-19 Havoc Pennington <hp@pobox.com>
9276 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
9279 * dbus/dbus-server.c (dbus_server_set_max_connections)
9280 (dbus_server_get_max_connections, dbus_server_get_n_connections):
9281 keep track of current number of connections, and add API for
9282 setting a max (but haven't implemented enforcing the max yet)
9284 2003-01-18 Havoc Pennington <hp@pobox.com>
9286 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
9287 reading/writing if read_watch != NULL or write_watch != NULL.
9289 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
9290 the message loader code to actually load message->header and
9291 message->body into the newly-created message.
9293 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
9296 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
9297 (dbus_connection_get_max_message_size)
9298 (dbus_connection_set_max_live_messages_size)
9299 (dbus_connection_get_max_live_messages_size): implement some
9300 resource limitation functions
9302 * dbus/dbus-resources.c: new file implementing some of the
9303 resource limits stuff
9305 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
9306 missing docs, add @todo to handle OOM etc.
9308 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
9311 2003-01-18 Havoc Pennington <hp@pobox.com>
9313 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
9314 connection if it hasn't been already.
9316 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
9317 replace with DisconnectFunction.
9319 2003-01-18 Havoc Pennington <hp@pobox.com>
9321 Building --disable-verbose-mode --disable-asserts --disable-tests
9322 cuts the library from 112K to 45K or so
9324 * configure.in: check for varargs macro support,
9325 add --enable-verbose-mode, --enable-asserts.
9327 * dbus/dbus-internals.h (_dbus_assert): support
9329 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
9331 2003-01-18 Havoc Pennington <hp@pobox.com>
9333 * dbus/dbus-test.c: include config.h so that tests actually run
9335 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
9336 so the failure mode when that assumption fails will be plenty
9339 2003-01-18 Havoc Pennington <hp@pobox.com>
9341 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
9343 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
9346 * test/Makefile.am: don't use special variable "TESTS" for echo-*
9347 since we don't want to use those in make check
9349 2003-01-15 Havoc Pennington <hp@redhat.com>
9355 2003-01-15 Havoc Pennington <hp@redhat.com>
9357 * test/Makefile.am: fix so that test source code ends up in the
9358 distribution on make distcheck
9360 2003-01-15 Havoc Pennington <hp@redhat.com>
9366 2003-01-15 Havoc Pennington <hp@redhat.com>
9368 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
9369 fix build when --disable-tests
9371 * Makefile.am (EXTRA_DIST): put HACKING in here
9373 * HACKING: document procedure for making a tarball release.
9375 2003-01-14 Anders Carlsson <andersca@codefactory.se>
9377 * bus/connection.c: (connection_error_handler),
9378 (bus_connection_setup):
9379 * bus/main.c: (main):
9380 Make sure that the DBusConnectionData struct is NULLed
9381 out to prevent a segfault.
9383 * dbus/dbus-errors.c: (dbus_result_to_string):
9384 * dbus/dbus-errors.h:
9385 * dbus/dbus-message.c: (dbus_message_get_fields),
9386 (dbus_message_get_fields_valist), (_dbus_message_test):
9387 * dbus/dbus-message.h:
9388 Make dbus_message_get_fields return a result code so we can
9389 track invalid fields as well as oom.
9391 2003-01-11 Havoc Pennington <hp@pobox.com>
9393 * configure.in: change --enable-test/--enable-ansi action-if-given
9394 to enable_foo=$enableval instead of enable_foo=yes
9396 2003-01-08 Havoc Pennington <hp@pobox.com>
9398 * dbus/dbus-string.c (_dbus_string_align_length): new function
9400 * dbus/dbus-test-main.c: move main() for test app here
9402 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
9403 symbol to run tests, because dbus-test isn't in the main
9406 Code review nitpicks.
9408 * dbus/dbus-message.c (dbus_message_write_header): add newlines
9409 for people with narrow emacs ;-). Assert client_serial was filled
9410 in. Assert message->name != NULL.
9411 (dbus_message_append_fields): have "first_field_type" arg separate
9412 from va list, needed for C++ binding that also uses varargs IIRC
9413 and helps with type safety
9414 (dbus_message_new): add @todo about using DBusString to store
9415 service/name internally
9416 (dbus_message_new): don't leak ->service and ->name on OOM later
9418 (dbus_message_unref): free the service name
9419 (dbus_message_get_fields): same change to varargs
9420 i.e. first_field_type
9421 (_dbus_message_loader_return_buffer): assert that the message data
9422 is aligned (if not it's a bug in our code). Put in verbose griping
9423 about why we set corrupted = TRUE.
9424 (decode_header_data): add FIXME that char* is evil. Was going to
9425 add FIXME about evil locale-specific string.h strncmp, but just
9426 switched to wacky string-as-uint32 optimization. Move check for
9427 "no room for field name" above get_const_data_len() to avoid
9428 assertion failure in get_const_data_len if we have trailing 2
9429 bytes or the like. Check for service and name fields being
9430 provided twice. Don't leak service/name on error. Require field
9431 names to be aligned to 4 bytes.
9433 * dbus/dbus-marshal.c: move byte swap stuff to header
9434 (_dbus_pack_int32): uscore-prefix
9435 (_dbus_unpack_int32): uscore-prefix
9436 (_dbus_unpack_uint32): export
9437 (_dbus_demarshal_string): add @todo complaining about use of
9439 (_dbus_marshal_get_field_end_pos): add @todo about bad error
9440 handling allowing corrupt data to go unchecked
9442 2003-01-08 Havoc Pennington <hp@redhat.com>
9444 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
9445 to the select() as needed for authentication. (should be using
9446 _dbus_poll() not select, but for another day)
9448 * dbus/dbus.h: include dbus/dbus-protocol.h
9450 2003-01-08 Anders Carlsson <andersca@codefactory.se>
9452 * dbus/Makefile.am (dbusinclude_HEADERS): Install
9455 2003-01-08 Anders Carlsson <andersca@codefactory.se>
9457 * dbus/dbus-internals.c: (_dbus_type_to_string):
9458 New function that returns a string describing a type.
9460 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
9461 * dbus/dbus-marshal.h:
9462 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
9463 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
9464 (dbus_message_iter_get_byte_array):
9465 * dbus/dbus-message.h:
9466 Add new convenience functions for appending and getting message fields.
9467 Also add demarshalling routines for byte arrays.
9469 2003-01-07 Anders Carlsson <andersca@codefactory.se>
9471 * dbus/dbus-connection-internal.h:
9472 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
9473 (_dbus_connection_get_next_client_serial),
9474 (dbus_connection_send_message):
9475 * dbus/dbus-internals.h:
9476 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
9477 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
9478 (_dbus_marshal_uint32), (_dbus_demarshal_double),
9479 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
9480 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
9481 (_dbus_verbose_bytes), (_dbus_marshal_test):
9482 * dbus/dbus-marshal.h:
9483 * dbus/dbus-message-internal.h:
9484 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
9485 (dbus_message_write_header), (_dbus_message_lock),
9486 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
9487 (dbus_message_get_name), (dbus_message_append_int32),
9488 (dbus_message_append_uint32), (dbus_message_append_double),
9489 (dbus_message_append_string), (dbus_message_append_byte_array),
9490 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
9491 (dbus_message_iter_unref), (dbus_message_iter_has_next),
9492 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
9493 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
9494 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
9495 (decode_header_data), (_dbus_message_loader_return_buffer),
9496 (message_iter_test), (_dbus_message_test):
9497 * dbus/dbus-message.h:
9498 * dbus/dbus-protocol.h:
9499 * dbus/dbus-test.c: (main):
9501 * glib/test-dbus-glib.c: (message_handler), (main):
9502 * test/echo-client.c: (main):
9503 * test/watch.c: (check_messages):
9504 Make messages sendable and receivable for real.
9506 2003-01-07 Anders Carlsson <andersca@codefactory.se>
9508 * dbus/dbus-marshal.c: (_dbus_marshal_double),
9509 (_dbus_marshal_string), (_dbus_marshal_byte_array):
9510 * dbus/dbus-message.c: (dbus_message_append_int32),
9511 (dbus_message_append_uint32), (dbus_message_append_double),
9512 (dbus_message_append_string), (dbus_message_append_byte_array):
9513 Handle OOM restoration.
9515 2003-01-07 Anders Carlsson <andersca@codefactory.se>
9517 * dbus/dbus-marshal.c: (_dbus_marshal_string),
9518 (_dbus_demarshal_string), (_dbus_marshal_test):
9519 * dbus/dbus-marshal.h:
9520 * dbus/dbus-message.c: (dbus_message_get_name),
9521 Document these functions.
9523 (dbus_message_append_int32), (dbus_message_append_uint32),
9524 (dbus_message_append_double), (dbus_message_append_string),
9525 (dbus_message_append_byte_array):
9526 * dbus/dbus-message.h:
9527 Add functions for adding message fields of different types.
9529 * dbus/dbus-protocol.h:
9530 Add the different types.
9532 2003-01-05 Havoc Pennington <hp@pobox.com>
9534 * bus/connection.c: implement routines for handling connections,
9535 first thing is keeping a list of owned services on each connection
9536 and setting up watches etc.
9538 * bus/services.c: implement a mapping from service names to lists
9541 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
9543 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
9544 to use static mutexes for global data
9546 * dbus/dbus-connection.c (dbus_connection_set_data): add new
9547 collection of functions to set/get application-specific data
9548 on the DBusConnection.
9550 2003-01-04 Havoc Pennington <hp@pobox.com>
9552 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
9553 (_dbus_poll): new function
9555 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
9558 * bus/loop.c: initial code for the daemon main loop
9560 2003-01-04 Havoc Pennington <hp@pobox.com>
9562 * test/watch.c (error_handler): make it safe if the error handler
9563 is called multiple times (if we s/error handler/disconnect
9564 handler/ we should just guarantee it's called only once)
9566 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
9567 error handler on disconnect (it's quite possible we should
9568 just change the error handler to a "disconnect handler," I'm
9569 not sure we have any other meaningful errors)
9571 * configure.in: check for getpwnam_r
9573 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
9574 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
9575 mechanism as in SASL spec, using socket credentials
9577 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
9578 (_dbus_send_credentials_unix_socket): new function
9580 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
9582 (_dbus_write): only check errno if <0 returned
9583 (_dbus_write_two): ditto
9585 2003-01-02 Anders Carlsson <andersca@codefactory.se>
9587 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
9588 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
9589 (_dbus_marshal_test):
9590 * dbus/dbus-marshal.h:
9591 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
9592 to _dbus_marshal_utf8_string. Also fix some tests.
9594 2002-12-28 Harri Porten <porten@kde.org>
9596 * configure.in: added check for C++ compiler and a very cheesy
9597 check for the Qt integration
9599 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
9601 * qt/Makefile.am: added
9603 * qt/.cvsignore: added
9605 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
9606 latter, added #ifdef QT_THREAD_SUPPORT guard.
9608 * dbus/Makefile.am: added missing headers for make dist
9610 2002-12-28 Kristian Rietveld <kris@gtk.org>
9612 * dbus/Makefile.am: fixup export-symbols-regex.
9614 2002-12-27 Anders Carlsson <andersca@codefactory.se>
9616 * acinclude.m4: Add this file and put the
9617 PKG_CHECK_MODULE macro in it.
9619 2002-12-27 Anders Carlsson <andersca@codefactory.se>
9621 * dbus/dbus-marshal.c: (_dbus_marshal_string),
9622 (_dbus_demarshal_double), (_dbus_demarshal_int32),
9623 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
9624 (_dbus_marshal_test):
9625 Make the demarshalling routines align the pos argument.
9626 Add string marshalling tests and fix the obvious bugs
9629 2002-12-26 Havoc Pennington <hp@pobox.com>
9631 * dbus/dbus-auth.c: fixes fixes fixes
9633 * dbus/dbus-transport-unix.c: wire up support for
9634 encoding/decoding data on the wire
9636 * dbus/dbus-auth.c (_dbus_auth_encode_data)
9637 (_dbus_auth_decode_data): append to target string
9638 instead of nuking it.
9640 2002-12-26 Havoc Pennington <hp@pobox.com>
9642 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
9643 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
9646 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
9647 avoid swap_bytes() overhead (ignoring possible assembly stuff for
9648 now). Main point is because I wanted unpack_uint32 to implement
9650 (_dbus_verbose_bytes): new function
9652 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
9654 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
9655 mechanism to handle a corrupt message stream
9656 (_dbus_message_loader_new): fix preallocation to only prealloc,
9659 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
9660 (_dbus_string_test): enhance tests for copy/move and fix the
9663 * dbus/dbus-transport-unix.c: Hold references in more places to
9664 avoid reentrancy problems
9666 * dbus/dbus-transport.c: ditto
9668 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
9669 leak reference count in no-message case
9671 * test/watch.c (do_mainloop): handle adding/removing watches
9672 during iteration over the watches. Also, ref the connection/server
9673 stored on a watch, so we don't try to mangle a destroyed one.
9675 * dbus/dbus-transport-unix.c (do_authentication): perform
9678 * dbus/dbus-auth.c (get_state): add a state
9679 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
9680 (_dbus_auth_get_unused_bytes): append the unused bytes
9681 to the passed in string, rather than prepend
9683 * dbus/dbus-transport.c (_dbus_transport_init_base): create
9684 the auth conversation DBusAuth
9686 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
9687 (_dbus_transport_new_for_domain_socket): when creating a
9688 transport, pass in whether it's a client-side or server-side
9689 transport so we know which DBusAuth to create
9691 2002-12-03 Havoc Pennington <hp@pobox.com>
9693 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
9694 _after_ finalizing the derived members
9695 (unix_connection_set): unref watch if we fail to add it
9697 * dbus/dbus-connection.c (dbus_connection_unref): delete the
9698 transport first, so that the connection owned by the
9699 transport will be valid as the transport finalizes.
9701 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
9702 if necessary, and remove watches from the connection.
9704 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
9706 2002-12-26 Anders Carlsson <andersca@codefactory.se>
9708 * dbus/dbus-marshal.c: (_dbus_marshal_string),
9709 (_dbus_demarshal_double), (_dbus_demarshal_int32),
9710 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
9711 (_dbus_marshal_test):
9712 * dbus/dbus-marshal.h:
9713 Add string marshal functions and have the demarshal functions
9714 return the new position.
9716 2002-12-25 Havoc Pennington <hp@pobox.com>
9718 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
9719 it is a simple protocol that just maps directly to SASL.
9721 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
9722 initial implementation, not actually used yet.
9724 * dbus/dbus-string.c (_dbus_string_find): new function
9725 (_dbus_string_equal): new function
9726 (_dbus_string_base64_encode): new function
9727 (_dbus_string_base64_decode): new function
9729 2002-12-25 Anders Carlsson <andersca@codefactory.se>
9732 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
9733 (_dbus_marshal_int32), (_dbus_marshal_uint32),
9734 (_dbus_demarshal_double), (_dbus_demarshal_int32),
9735 (_dbus_demarshal_uint32), (_dbus_marshal_test):
9736 * dbus/dbus-marshal.h:
9737 * dbus/dbus-protocol.h:
9738 * dbus/dbus-test.c: (main):
9740 Add un-optimized marshalling/demarshalling routines.
9742 2002-12-25 Harri Porten <porten@kde.org>
9744 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
9746 2002-12-24 Zack Rusin <zack@kde.org>
9748 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
9749 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
9752 2002-12-24 Havoc Pennington <hp@pobox.com>
9754 * glib/dbus-gthread.c: fix include
9756 * glib/dbus-glib.h: rename DBusMessageHandler for now.
9757 I think glib API needs to change, though, as you don't
9758 want to use DBusMessageFunction, you want to use the
9759 DBusMessageHandler object. Probably
9760 dbus_connection_open_with_g_main_loop()
9761 and dbus_connection_setup_g_main_loop() or something like that
9762 (but think of better names...) that just create a connection
9763 that has watch/timeout functions etc. already set up.
9765 * dbus/dbus-connection.c
9766 (dbus_connection_send_message_with_reply): new function just to
9767 show how the message handler helps us deal with replies.
9769 * dbus/dbus-list.c (_dbus_list_remove_last): new function
9771 * dbus/dbus-string.c (_dbus_string_test): free a string that
9774 * dbus/dbus-hash.c: use memory pools for the hash entries
9775 (rebuild_table): be more paranoid about overflow, and
9776 shrink table when we can
9777 (_dbus_hash_test): reduce number of sprintfs and write
9778 valid C89. Add tests for case where we grow and then
9779 shrink the hash table.
9781 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
9783 * dbus/dbus-connection.c (dbus_connection_register_handler)
9784 (dbus_connection_unregister_handler): new functions
9786 * dbus/dbus-message.c (dbus_message_get_name): new
9788 * dbus/dbus-list.c: fix docs typo
9790 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
9791 an object representing a handler for messages.
9793 2002-12-16 Anders Carlsson <andersca@codefactory.se>
9796 * glib/dbus-gthread.c: (dbus_gthread_init):
9797 Don't use the gdbus prefix for public functions.
9799 2002-12-16 Anders Carlsson <andersca@codefactory.se>
9803 Add GLib checks and fixup .pc files
9807 * glib/dbus-gmain.c: (gdbus_connection_prepare),
9808 (gdbus_connection_check), (gdbus_connection_dispatch),
9809 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
9810 (dbus_connection_gsource_new):
9811 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
9812 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
9813 * glib/test-dbus-glib.c: (message_handler), (main):
9816 2002-12-15 Harri Porten <porten@kde.org>
9818 * autogen.sh: check for libtoolize before attempting to use it
9820 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
9823 * .cvsignore: ignore more stamp files
9825 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
9827 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
9828 without make install.
9830 2002-12-15 Havoc Pennington <hp@pobox.com>
9832 * dbus/dbus-threads.c: add thread stubs that a higher library
9833 layer can fill in. e.g. the GLib wrapper might fill them in with
9834 GThread stuff. We still need to use this thread API to
9835 thread-safe-ize the library.
9837 2002-12-12 Havoc Pennington <hp@pobox.com>
9839 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
9840 below new interfaces and include fewer system headers.
9842 * dbus/dbus-sysdeps.c (_dbus_read): new function
9843 (_dbus_write): new function
9844 (_dbus_write_two): new function
9845 (_dbus_connect_unix_socket): new function
9846 (_dbus_listen_unix_socket): new function
9848 * dbus/dbus-message-internal.h: change interfaces to use
9851 2002-12-11 Havoc Pennington <hp@pobox.com>
9853 * dbus/dbus-types.h: add dbus_unichar
9855 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
9857 * dbus/dbus-connection.c (dbus_connection_send_message): return
9860 * dbus/dbus-transport.c: include dbus-watch.h
9862 * dbus/dbus-connection.c: include dbus-message-internal.h
9864 * HACKING: add file with coding guidelines stuff.
9866 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
9867 handling here, for security purposes (as in vsftpd). Not actually
9868 using this class yet.
9870 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
9871 system/libc usage here, as in vsftpd, for ease of auditing (and
9872 should also simplify portability). Haven't actually moved all the
9873 system/libc usage into here yet.
9875 2002-11-25 Havoc Pennington <hp@pobox.com>
9877 * dbus/dbus-internals.c (_dbus_verbose): fix to not
9878 always print the first verbose message.
9880 2002-11-24 Havoc Pennington <hp@pobox.com>
9882 * test/echo-client.c, test/echo-server.c: cheesy test
9885 * configure.in (AC_CHECK_FUNCS): check for writev
9887 * dbus/dbus-message.c (_dbus_message_get_network_data): new
9890 * dbus/dbus-list.c (_dbus_list_foreach): new function
9892 * dbus/dbus-internals.c (_dbus_verbose): new function
9894 * dbus/dbus-server.c, dbus/dbus-server.h: public object
9895 representing a server that listens for connections.
9897 * dbus/.cvsignore: create
9899 * dbus/dbus-errors.h, dbus/dbus-errors.c:
9900 public API for reporting errors
9902 * dbus/dbus-connection.h, dbus/dbus-connection.c:
9903 public object representing a connection that
9904 sends/receives messages. (Same object used for
9905 both client and server.)
9907 * dbus/dbus-transport.h, dbus/dbus-transport.c:
9908 Basic abstraction for different kinds of stream
9909 that we might read/write messages from.
9911 2002-11-23 Havoc Pennington <hp@pobox.com>
9913 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
9916 * dbus/dbus-test.c (main): add list test, and include
9917 dbus-test.h as intended
9919 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
9920 (_dbus_hash_table_remove_int): return value indicates
9921 whether the entry existed to remove
9923 * dbus/dbus-list.c: add linked list utility class,
9926 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
9929 2002-11-23 Havoc Pennington <hp@pobox.com>
9931 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
9932 DBUS_END_DECLS to nothing, that should fix this once and for all
9934 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
9936 * dbus/dbus-message.c, dbus/dbus-hash.c:
9937 add some missing @brief
9939 2002-11-23 Havoc Pennington <hp@pobox.com>
9941 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
9942 to avoid confusing Doxygen
9944 * dbus/dbus-hash.c: @} not }@
9946 * dbus/dbus-message.c (struct DBusMessage): split out
9949 2002-11-23 Havoc Pennington <hp@pobox.com>
9951 * configure.in: pile on more warning flags if using gcc
9953 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
9954 to document static functions
9956 * configure.in: add summary to end of configure so it
9957 looks nice and attractive
9959 * dbus/dbus-hash.c: finish implementation and write unit
9962 * configure.in: add --enable-tests to enable unit tests
9964 * dbus/dbus-test.c: test program to run unit tests
9965 for all files in dbus/*, initially runs a test for
9968 * dbus/dbus-internals.h: file to hold some internal utility stuff
9970 2002-11-22 Havoc Pennington <hp@redhat.com>
9972 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
9973 "ported" away from Tcl
9975 * dbus/dbus-types.h: header for types such as dbus_bool_t
9977 2002-11-22 Havoc Pennington <hp@redhat.com>
9979 * dbus/dbus.h: fixups for doc warnings
9981 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
9983 (QUIET): make it quiet so we can see warnings
9985 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
9987 2002-11-22 Havoc Pennington <hp@redhat.com>
9989 * Makefile.am: include "Doxyfile" target in all-local
9991 * configure.in: generate the Doxyfile
9993 * Doxyfile.in: move Doxyfile here, so we can use
9994 configure to generate a Doxyfile with the right
9997 2002-11-22 Havoc Pennington <hp@redhat.com>
9999 * dbus/dbus-message.c: move inline docs into .c file
10001 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
10002 so all docs are under doc/
10003 (MAN_EXTENSION): generate man pages. Use extension
10004 ".3dbus" which matches ".3qt" on my system,
10005 I guess this is OK, I don't know really.
10006 (FILE_PATTERNS): look for .c files not .h, makes sense
10007 for plain C I think
10009 2002-11-22 Havoc Pennington <hp@pobox.com>
10011 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
10012 because any app can be a server, and any app can be a client,
10013 the bus is a special kind of server.
10015 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
10017 * Doxyfile : adding. Still needs Makefile rules to be generated
10018 automatically (just run "doxygen" in the toplevel dir for now to
10021 * dbus/dbus-message.h : Adding sample docs (javadoc since
10022 resembles gtk-doc a little more)
10024 * dbus/dbus.h : Adding sample docs
10026 2002-11-21 Havoc Pennington <hp@redhat.com>
10028 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
10029 so we can allow ourselves to include files directly,
10030 instead of having to use dbus.h
10032 * dbus/dbus.h: fill in
10034 * dbus/dbus-message.h: sketch out a sample header file.
10035 Include griping if you include it directly instead of
10038 * dbus/dbus-macros.h: new file with macros for extern "C",
10039 TRUE/FALSE, NULL, etc.
10041 * doc/file-boilerplate.c: put include guards in here
10043 2002-11-21 Havoc Pennington <hp@redhat.com>
10045 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
10047 * COPYING: include the GPL as well, and license code
10048 under both AFL and GPL.
10050 2002-11-21 Havoc Pennington <hp@redhat.com>
10052 * acconfig.h: get rid of this
10054 * autogen.sh (run_configure): add --no-configure option
10056 * configure.in: remove AC_ARG_PROGRAM to make
10057 autoconf complain less. add AC_PREREQ.
10058 add AC_DEFINE third arg.
10060 2002-11-21 Anders Carlsson <andersca@codefactory.se>
10063 Fix references so we can distcheck.
10065 2002-11-21 Havoc Pennington <hp@redhat.com>
10067 * Initial module creation