mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2025-12-25 16:20:08 +01:00
Added test code that 1) starts an actual bus daemon and 2) uses DBusGProxy; fixed bugs that were revealed by the test. Lots more testing possible, but this is the basic framework. * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove empty proxy lists from the proxy list hash * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a couple of return_if_fail checks * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0 to allocate, so everything is cleared to NULL as it should be. * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass source as data to dbus_connection_set_timeout_functions() as the timeout functions expected * test/glib/run-test.sh: add a little script to start up a message bus and run tests using it * tools/dbus-launch.1: updates * tools/dbus-launch.c (main): add --config-file option * tools/dbus-launch.c (main): remove confusing else if (runprog) that could never be reached. * dbus/dbus-message.c (dbus_message_new_method_return) (dbus_message_new_error, dbus_message_new_signal): set the no-reply-expected flag on all these. Redundant, but may as well be consistent.
113 lines
5 KiB
Text
113 lines
5 KiB
Text
|
|
- 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.
|
|
|
|
- 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.
|
|
|
|
- Automatic service activation, should probably be done through a message flag.
|
|
|
|
- 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.
|
|
|
|
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)
|
|
|
|
- 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 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.
|
|
|
|
- there are various bits of code to manage ref/unref of data slots, that should
|
|
be merged into a generic facility
|
|
|
|
- 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.
|
|
|
|
- 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.
|
|
|
|
- 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.
|
|
|
|
- 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.
|
|
|
|
- <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
|
|
|
|
- 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
|
|
strictly part of the call stack of said method call. But I don't
|
|
really see how to do this without making the user pass around the
|
|
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
|
|
|
|
- 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
|
|
|
|
- document the auth protocol as a set of states and transitions, and
|
|
then reimplement it in those terms
|
|
|
|
- dbus_gproxy or dbus_g_proxy?
|
|
|
|
- add dbus_message_has_path(), maybe has_member/interface
|
|
|
|
- The OBJECT_PATH type is not documented in the spec.
|
|
|
|
- re_align_field_recurse() in dbus-message.c is broken because it
|
|
crashes on some types of header field values. security problem.
|
|
|
|
- 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
|
|
|
|
- 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.
|
|
|
|
- rename TYPE_NAMED to TYPE_CUSTOM, probably a clearer name.
|
|
|
|
- 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?
|