[lib-fix] If error -1 should be returned by kdbus_decode_msg
[platform/upstream/dbus.git] / doc / TODO
index d58bc3a..eb4e797 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -1,80 +1,66 @@
-Important for 1.0
+Important for 1.2
 ===
 
- - Audit @todo and FIXME for security issues
+ - System bus activation
 
- - 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.
+ - Windows port
 
- - 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)
-
- - 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.
-
- - validate dict entry number of fields
+Important for 1.0 GLib Bindings
+===
 
- - just before 1.0, try a HAVE_INT64=0 build and be sure it runs
+ - Test point-to-point mode
 
- - in dbus-keyring.c, enforce that the keyring dir is not 
-   world readable/writable
+ - Add support for getting sender
 
- - Ping isn't handled
+ - 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.
 
- - fix introspection format to handle all signatures
+Important for 1.0 Python bindings
+===
 
- - make the mutex/condvar functions private
+ - Hammer down API
 
- - dbus-pending-call.c has some API and thread safety issues to review
+ - Fix removing of signals from the match tree
 
- - make dbus_connection_open() return a shared connection from a pool.
-   Add dbus_connection_open_private() that works like the current one.
-   To do this, each DBusServer could have a 128-bit GUID. This GUID
-   would be in the address from dbus_server_get_address(). On
-   connection to a server, the GUID would be provided as the first
-   thing in the auth protocol, and verified vs. the expected GUID if a
-   GUID was in the address used to connect. A hash from GUID to
-   connection would be kept, so attempts to connect to a GUID already
-   in the hash would return a shared existing connection.
+ - Fix refcounting and userdata lifecycles
 
-   The purpose of all this is to allow a dbus_g_proxy_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.
+ - 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
-
- - Need to make sure that dbus-glib.h never returns any 
-   dbus_malloc() memory, only g_malloc(). 
-   dbus_g_proxy_end_call() is the major offender. 
-
- - DBusGProxy doesn't emit "destroy" when it should
+ - protocol version in each message is pretty silly
 
-Might as Well for 1.0
+Can Be Post 1.0
 ===
 
- - add dbus_message_has_path(), maybe has_member/interface
+ - revamp dbus-launch a bit,
+   see http://lists.freedesktop.org/archives/dbus/2006-October/005906.html
+   for some thoughts.
 
- - connection_open/connection_disconnect lacks symmetry, open/close
-   or connect/disconnect
+ - 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.
 
- - protocol version in each message is pretty silly
+ - _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.
 
-Can Be Post 1.0
-===
+ - if the GUID is obtained only during authentication, not in the address, 
+   we could still share the connection
+
+ - 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.
 
  - DBusWatchList/TimeoutList duplicate a lot of code, as do
    protected_change_watch/protected_change_timeout in dbus-connection.c
@@ -128,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
 
@@ -141,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
+
+