X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=doc%2FTODO;h=eb4e797ff6fcc61919e9194c3dc75605706dac45;hb=6676a7db9cb30dad9bdd477e5949ca12a3c15cf6;hp=f670df8061a5d2569d56dc9f332157be78272271;hpb=9c3d566e95c9080f6040c64531b0ccae22bd5d74;p=platform%2Fupstream%2Fdbus.git diff --git a/doc/TODO b/doc/TODO index f670df8..eb4e797 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,101 +1,77 @@ -Important for 1.0 +Important for 1.2 === - - - 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. - - Activation needs some careful additional thinking-through. + - System bus activation - - Audit @todo and FIXME for security issues + - Windows port - - 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. - - - 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: +Important for 1.0 GLib Bindings +=== - 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. + - Test point-to-point mode - - 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. + - Add support for getting sender - - 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()?) + - 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. - - it's probably obnoxious that reading/writing bools doesn't return - dbus_bool_t; solution is probably to change bool to 32 bits on the - wire +Important for 1.0 Python bindings +=== - - maybe change and don't align variant bodies to 8-boundary, it uses - up lots of space in a typical header + - Hammer down API - - rename the service thing. unique service names (":1") and well-known - ("org.foo.bar") should have different names probably; something like - "address" for the unique and "alias" for the well-known, or - "application id" for the unique and "common name" or "published - name" for the well-known; not sure yet. + - Fix removing of signals from the match tree - - things are broken now when mixing endianness, because DBusMessage - doesn't autoswap itself when you access a message of alternate - endian. + - Fix refcounting and userdata lifecycles - - add string array support back to append_args() + - 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. -Might as Well for 1.0 -=== + - 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. - - Probably no point in a version number in the daemon name - (s/dbus-daemon-1/dbus-daemon/) + - _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 - - dbus_message_iter_init_array_iterator has "iter" and "iterator" - in the same function name + - 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. - - connection_open/connection_disconnect lacks symmetry, open/close - or connect/disconnect + - 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. - - protocol version in each message is pretty silly + - change .service files to allow Names=list in addition to Name=string -Can Be Post 1.0 -=== + - The message bus internal code still says "service" for + "name", "base service" for "unique name", "activate" for + "start"; would be nice to clean up. - Property list feature on message bus (list of properties associated with a connection). May also include message matching rules @@ -106,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 @@ -146,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 @@ -159,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 + +