X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=doc%2FTODO;h=eb4e797ff6fcc61919e9194c3dc75605706dac45;hb=6676a7db9cb30dad9bdd477e5949ca12a3c15cf6;hp=ca359573308be263a33ebc70deefda037375ab2d;hpb=4097e94af3d2fb1eb865343e3f76ca3949e7c69b;p=platform%2Fupstream%2Fdbus.git diff --git a/doc/TODO b/doc/TODO index ca35957..eb4e797 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,46 +1,86 @@ +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. + - System bus activation - - Activation needs some careful additional thinking-through. + - Windows port - - Property list feature on message bus (list of properties associated - with a connection). May also include message matching rules - that involve the properties of the source or destination - connection. +Important for 1.0 GLib Bindings +=== - - Automatic service activation, should probably be done through a message flag. + - Test point-to-point mode - - Disconnecting the remote end on invalid UTF-8 is probably not a good - idea. The definitiion of "valid" is slightly fuzzy. I think it might - be better to just silently "fix" the UTF-8, or perhaps return an error. + - Add support for getting sender + + - 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. + +Important for 1.0 Python bindings +=== + + - Hammer down API + + - Fix removing of signals from the match tree + + - Fix refcounting and userdata lifecycles + + - Write a generic mainloop + +Might as Well for 1.0 +=== + + - protocol version in each message is pretty silly + +Can Be Post 1.0 +=== - 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) + - revamp dbus-launch a bit, + see http://lists.freedesktop.org/archives/dbus/2006-October/005906.html + for some thoughts. - - 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. + - 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. - - 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. + - _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. - - there are various bits of code to manage ref/unref of data slots, that should - be merged into a generic facility + - if the GUID is obtained only during authentication, not in the address, + we could still share the connection - - 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. + - 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. - - 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. + - 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. + + - 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 + "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 + that involve the properties of the source or destination + connection. + + - Disconnecting the remote end on invalid UTF-8 is probably not a good + 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. - build and install the Doxygen manual in Makefile when --enable-docs @@ -59,11 +99,6 @@ has rules for it anyway, or something. it's conceptually screwy at the moment. - - elements are not merged in from included configuration - files; they have to be in the toplevel file. when loading - a child file, we could just init its DBusLimits from the parent, - then after parsing copy its DBusLimits back to the parent - - when making a method call, if the call serial were globally unique, we could forward the call serial along with any method calls made as a result of the first method call, and allow reentrancy that was @@ -72,42 +107,49 @@ call serial to all method calls all the time, or disallowing async calls. - - the invalid messages in the test suite are all useless because - they are invalid for the wrong reasons due to protocol changes + If done post 1.0 will probably be an optional/ugly-API type + of thing. - I don't want to introduce DBusObject, but refcounting and object data could still be factored out into an internal "base class" perhaps. - - modify the auth protocol to also support other initial-handshake - type of information + - 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 - - dbus_gproxy or dbus_g_proxy? + - recursive dispatch, see dbus_connection_dispatch() + + - do we need per-display activation; if so I'd like to do this by setting a + "display ID" property on screen 0, with a GUID, and keying activation by + said GUID. Otherwise you get all kinds of unrobust + string/hostname-based mess. per-screen is then done by appending screen number + to the display. If displays have a deterministic ID like this, you can + 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) - - add dbus_message_has_path(), maybe has_member/interface + - 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) - - The OBJECT_PATH type is not documented in the spec. + - just before 1.0, try a HAVE_INT64=0 build and be sure it runs - - re_align_field_recurse() in dbus-message.c is broken because it - crashes on some types of header field values. security problem. + - Windows port needs recursive mutexes - - the system daemon has to be able to reload changes to the - security policy without restarting, because apps won't - be coded to handle it restarting +Should Be Post 1.0 +=== - - modify the wire protocol to keep the args signature separate - from the args themselves. Make the name of TYPE_NAMED part - of the type signature, rather than part of the value. - Then you have the full typecheck in a single string. + - look into supporting the concept of a "connection" generically + (what does this TODO item mean?) - - rename TYPE_NAMED to TYPE_CUSTOM, probably a clearer name. + - test/name-test should be named test/with-bus or something like that - - 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?