From 75742242000e782719bc1656f0a7da72b059e88e Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Tue, 21 Oct 2003 05:46:52 +0000 Subject: 2003-10-20 Havoc Pennington hmm, make check is currently not passing. * doc/dbus-specification.xml: add requirement that custom type names follow the same rules as interface names. * dbus/dbus-protocol.h: change some of the byte codes, to avoid duplication and allow 'c' to be 'custom'; dict is now 'm' for 'map' * doc/dbus-specification.xml: update type codes to match dbus-protocol.h, using the ASCII byte values. Rename type NAMED to CUSTOM. Add type OBJECT_PATH to the spec. 2003-10-17 Havoc Pennington * bus/driver.c (create_unique_client_name): use "." as separator in base service names instead of '-' * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul byte at the end of the string * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add optimization macros since string validation seems to be a slow point. * doc/dbus-specification.xml: restrict valid service/interface/member/error names. Add test suite code for the name validation. * dbus/dbus-string.c: limit service/interface/member/error names to [0-9][A-Z][a-z]_ * dbus/dbus-connection.c (dbus_connection_dispatch): add missing format arg to verbose spew * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of memory, return instead of g_error * test/test-service.c (path_message_func): support emitting a signal on request * dbus/dbus-bus.c (init_connections_unlocked): only fill in activation bus type if DBUS_BUS_ACTIVATION was set; default to assuming the activation bus was the session bus so that services started manually will still register. (init_connections_unlocked): fix so that in OOM situation we get the same semantics when retrying the function * test/test-service.c (main): change to use path registration, to test those codepaths; register with DBUS_BUS_ACTIVATION rather than DBUS_BUS_SESSION --- doc/TODO | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'doc/TODO') diff --git a/doc/TODO b/doc/TODO index 98d70b0c..f9cb9db8 100644 --- a/doc/TODO +++ b/doc/TODO @@ -26,19 +26,10 @@ which of these functions to include, in light of the fact that GLib/Qt native stubs will probably also exist. - - The message handler interface needs rethinking, perhaps handlers should be able - to return an error that automatically gets turned into a message; most likely - some basic spec'ing out of the GLib/Qt level stubs/skels stuff will be - needed to understand the right approach. - - assorted _-prefixed symbols in libdbus aren't actually used by libdbus, only by the message bus. These bloat up the library size. Not sure how to fix, really. - - if you send a message to a service then block for reply, and the service exits/crashes - after the message bus has processed your message but before the service has replied, - it would be nice if the message bus sent you an error reply. - - build and install the Doxygen manual in Makefile when --enable-docs - if you send the same message to multiple connections, the serial number @@ -89,8 +80,6 @@ - add dbus_message_has_path(), maybe has_member/interface - - The OBJECT_PATH type is not documented in the spec. - - re_align_field_recurse() in dbus-message.c is broken because it crashes on some types of header field values. security problem. @@ -99,18 +88,21 @@ be coded to handle it restarting - modify the wire protocol to keep the args signature separate - from the args themselves. Make the name of TYPE_NAMED part + from the args themselves. Make the name of TYPE_CUSTOM part of the type signature, rather than part of the value. Then you have the full typecheck in a single string. - - rename TYPE_NAMED to TYPE_CUSTOM, probably a clearer name. - - dbus_message_iter_init_array_iterator has "iter" and "iterator" in the same function name - the GLib bindings varargs take DBUS_TYPE_WHATEVER and return stuff allocated with dbus_malloc(); should this be made more "G" at some expense in code duplication? + You also still have to use some D-BUS functions such as + dbus_message_get_args() which takes a DBusError. + Probably we need to either fully encapsulate and hide + dbus/dbus.h, or encapsulate it slightly less e.g. no + GError. - need to define bus behavior if you send a message to yourself; is it an error, or allowed? If allowed, @@ -124,3 +116,9 @@ - the varargs dbus_message_get_args() needs to support OBJECT_PATH and OBJECT_PATH_ARRAY + + - recursive dispatch, see dbus_connection_dispatch() + + - the auth protocol may as well use hex encoding instead of + base64, then we can dump the base64 implementation and + save some bloat. -- cgit