- - Service and message names should be more carefully restricted;
- they should have a max length, may not be an empty string,
- and perhaps should not be allowed to be a glob such as "*" since
- the config file could conveniently use such notation.
-
- Suggest requiring length > 0, length < max,
- name contains at least one ".", no initial ".", and valid UTF-8.
- That would prohibit plain "*" but not "foo.bar.baz.operator*"
-
- For maximum convenience from all programming languages, we could go
- further and just categorically ban nearly all non-alphanumeric
- characters.
-
- Message matching rules (so broadcasts can be filtered) need sorting
out.
- Activation needs some careful additional thinking-through.
- - Recursive/composite/etc. types and associated API, see mailing list.
-
- - Configuration file (working on that now)
-
- 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.
- - Implement all the needed resource limits to keep clients from
- killing the message bus.
-
- Automatic service activation, should probably be done through a message flag.
- Disconnecting the remote end on invalid UTF-8 is probably not a good
- We might consider returning a "no such operation" error in dbus-connection.c
for unhandled messages.
- - Abstract the user database, so you can use something other than the system password
- database.
-
- 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
some basic spec'ing out of the GLib/Qt level stubs/skels stuff will be
needed to understand the right approach.
- - sync up DBusWatch and DBusTimeout so that handle_watch() is a method on DBusWatch
- similar to the way timeouts work
-
- there are various bits of code to manage ref/unref of data slots, that should
be merged into a generic facility
- - add _dbus_return_if_fail, _dbus_return_val_if_fail() and use on public entry
- points in place of _dbus_assert(). Add --disable-checks to control whether these
- do anything.
-
- 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.
- - dbus_error_has_name(), dbus_message_name_is()
-
- - add DBUS_TYPE_INT64 ?
-
- 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.
- - We have a limit on the number of messages a connection can send, but
- not on how many can be buffered for a given connection.
+ - build and install the Doxygen manual in Makefile when --enable-docs
+
+ - if you send the same message to multiple connections, the serial number
+ will only be right for one of them. Probably need to just write() the serial
+ number, rather than putting it in the DBusMessage, or something.
+
+ - perhaps the bus driver should have properties that reflect attributes
+ of the session, such as hostname, architecture, operating system,
+ etc. Could be useful for code that wants to special-case behavior
+ for a particular host or class of hosts, for example.
- - make client serial and reply serial unsigned and add dbus_message_get_is_reply()
+ - currently the security policy stuff for messages to/from
+ the bus driver is kind of strange; basically it's hardcoded that
+ you can always talk to the driver, but the default config file
+ has rules for it anyway, or something. it's conceptually
+ screwy at the moment.
- - other apps can send you a fake DBUS_MESSAGE_LOCAL_DISCONNECT; need to
- check for that and disallow it.
+ - <limit> 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