X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=doc%2FTODO;h=eb4e797ff6fcc61919e9194c3dc75605706dac45;hb=04c58b9e5fbdf3acc7565f989e5fcd11f0c23c57;hp=f7a064a013ea416244468ddaa14394fbf814ce2e;hpb=2abdb13ebe737e39653b79fecd93477e156b9db1;p=platform%2Fupstream%2Fdbus.git diff --git a/doc/TODO b/doc/TODO index f7a064a..eb4e797 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,88 +1,73 @@ -Important for 1.0 +Important for 1.2 === - - change .service files to have Names=list rather than Name=string - - - How we will handle DCOP needs sorting out. Among other things, we - need to check that service and service-ownership semantics map to DCOP - reasonably well. + - System bus activation - - Activation needs some careful additional thinking-through. + - Windows port - - Audit @todo and FIXME for security issues +Important for 1.0 GLib Bindings +=== - - The convenience functions in dbus-bus.h should perhaps have - the signatures that they would have if they were autogenerated - stubs. e.g. the acquire service function. We should also evaluate - which of these functions to include, in light of the fact that - GLib/Qt native stubs will probably also exist. + - Test point-to-point mode - - the "break loader" and valid/invalid message tests are all disabled; - they need to be fixed and re-enabled with the new message args stuff. - I think I want to drop the .message files thing and just have code - that generates messages, more like the tests for - dbus-marshal-recursive.c - - - modify the auth protocol to also support other initial-handshake - type of information: + - Add support for getting sender - Perhaps the auth protocol should be able to negotiate a protocol - version to the least-common-denominator between client and server? - Though in practice ever using this feature would be pretty tough, - since protocol probably modifies the API. But we could have it there - as a safety net. + - format_version in the object info doesn't look like it's handled correctly. The creator + of the object info should specify some fixed number per struct version; the library + should handle only specific numbers it knows about. There's no assumption that all + numbers >= the given one are compatible. The idea is that new versions of the lib + can offer totally different object info structs, but old versions + keep working. - - need to define bus behavior if you send a message to - yourself; is it an error, or allowed? If allowed, - we need to have a test for it in the test suite. +Important for 1.0 Python bindings +=== - - array lengths should probably be returned as size_t rather than int - (though they are kind of a pita to pass in as size_t with the - varargs, so maybe not - what does glib do with g_object_get()?) + - Hammer down API - - things are broken now when mixing endianness, because DBusMessage - doesn't autoswap itself when you access a message of alternate - endian. + - Fix removing of signals from the match tree - - add string array support back to append_args() + - Fix refcounting and userdata lifecycles - - auto-activate by default + - Write a generic mainloop -Important for 1.0 GLib Bindings +Might as Well for 1.0 === - - finish dbus-glib-tool support for adding introspection - data to GObject and autoexporting GObject using same + - protocol version in each message is pretty silly - - 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. Or maybe it's as simple as "never return dbus_malloc() - memory" and just fully encapsulate the get_args() type of - stuff. +Can Be Post 1.0 +=== - - dbus_gproxy_connect_signal() has to take a signature for the signal - so it can figure out how to invoke the callback, or we have to rely - on having introspection data. + - revamp dbus-launch a bit, + see http://lists.freedesktop.org/archives/dbus/2006-October/005906.html + for some thoughts. - - DBusGProxy doesn't emit "destroy" when it should + - clean up the creds issue on *BSD's in dbus/dbus-sysdeps-unix.c. + They should work as is but we need to rearange it to make it + clearer which method is being used. configure.in should + be fixed up to make that decition. -Might as Well for 1.0 -=== + - _dbus_connection_unref_unlocked() is essentially always broken because + the connection finalizer calls non-unlocked functions. One fix is to make + the finalizer run with the lock held, but since it calls out to the app that may + be pretty broken. More likely all the uses of unref_unlocked are just wrong. - - add dbus_message_has_path(), maybe has_member/interface + - if the GUID is obtained only during authentication, not in the address, + we could still share the connection - - connection_open/connection_disconnect lacks symmetry, open/close - or connect/disconnect + - Allow a dbus_g_proxy_to_string()/g_object_to_string() that + would convert the proxy to an "IOR" and dbus_g_proxy_from_string() + that would decode; using these, dbus-glib users could avoid + DBusConnection entirely. Of course the same applies to other kinds + of binding. This would use dbus_connection_open()'s connection-sharing + feature to avoid massive proliferation of connections. - - protocol version in each message is pretty silly + - DBusWatchList/TimeoutList duplicate a lot of code, as do + protected_change_watch/protected_change_timeout in dbus-connection.c + and dbus-server.c. This could all be mopped up, cut-and-paste + fixed, code size reduced. -Can Be Post 1.0 -=== + - change .service files to allow Names=list in addition to Name=string - The message bus internal code still says "service" for "name", "base service" for "unique name", "activate" for @@ -97,14 +82,6 @@ Can Be Post 1.0 idea. The definition of "valid" is slightly fuzzy. I think it might be better to just silently "fix" the UTF-8, or perhaps return an error. - Owen says we should only validate the UTF-8 on dbus_message_get_string() - (changing get_string to have an error return, and allowing a type error - as a possible return) - - - 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. - - build and install the Doxygen manual in Makefile when --enable-docs - if you send the same message to multiple connections, the serial number @@ -137,6 +114,8 @@ Can Be Post 1.0 data could still be factored out into an internal "base class" perhaps. + - Keep convenience wrappers in sync with bus methods + - document the auth protocol as a set of states and transitions, and then reimplement it in those terms @@ -150,3 +129,27 @@ Can Be Post 1.0 do per-display by simply including GUID in the service name. - optimization and profiling! + + - Match rules aren't in the spec (probably a lot of methods on the bus + are not) + + - the "break loader" and valid/invalid message tests are all disabled; + they need to be fixed and re-enabled with the new message args stuff. + I think I want to drop the .message files thing and just have code + that generates messages, more like the tests for + dbus-marshal-recursive.c (this is mostly done now, just needs some + cleanup) + + - just before 1.0, try a HAVE_INT64=0 build and be sure it runs + + - Windows port needs recursive mutexes + +Should Be Post 1.0 +=== + + - look into supporting the concept of a "connection" generically + (what does this TODO item mean?) + + - test/name-test should be named test/with-bus or something like that + +