need to be able to escape ';' and ',' in the key values, and the parsing needs to handle that.
DBusAuth really needs to be rewritten as an explicit state machine.
right now sometimes both ends will block waiting for input from the other end, e.g.
the cookie keyring needs to be cached globally not just per-auth (which raises threadsafety issues too)
grep FIXME in dbus-auth.c
if we get an error reply, it has to be converted into DBusError and returned
FIXME what if we call out to application code to handle a message, holding the dispatch lock, and the application code runs the main loop and dispatches again? Probably deadlocks at the moment.
Should probably demarshal to a DBusString, having memcpy() in here is Evil(tm).
we need to enforce a max length on strings in header fields.
If a message has unknown type, we should probably eat it right here rather than passing it out to applications.
We need to free the argument data when an error occurs.
maybe to make this threadsafe, it should be steal_reply(), i.e.
Need notification to apps of disconnection, may matter for some transports
memcmp is probably faster
memcmp is probably faster
avoid inserting the source into dest, then deleting the replaced chunk of dest (which creates a potentially large intermediate string).
change spec to disallow more things, such as spaces in the path name