The bus driver currently hard-codes support for two interfaces (o.fd.DBus and Introspectable, with the latter being a one-off special case).
If we gave it a lookup table of interfaces, we could add, for instance, a Debugging or Profiling interface for Bug #24307.
(In the longer term Colin wants such things to be on a secondary /var/run/dbus/system_bus_management_socket or some such, but splitting off interfaces now seems like a good start on that.)
Maemo/MeeGo has a patched dbus-daemon which links against libcreds (<http://meego.gitorious.org/meego-platform-security/libcreds2>); any libcreds-related functionality should also go on a conditionally-enabled interface.
The Unix- and SELinux-specific methods on o.fd.DBus could also have gone on separate interfaces, if we'd had this at the time.
Created attachment 42749 [details] [review]
bus driver: allow implementing more than one interface
Review of attachment 42749 [details] [review]:
Looks good to me.
Oops, that wasn't quite right; corrections to follow.
Created attachment 42763 [details] [review]
[2/3] bus_driver_generate_introspect_string: close <interface> correctly
Created attachment 42764 [details] [review]
[3/3] bus_driver_generate_introspect_string: don't hard-code Introspect()
Introspectable is now just an interface like any other, so we don't
need to hard-code it.
Still looks fine overall, but I'd prefer that these 3 be squashed together to better preserve bisectability.
Thanks, I'll commit a squashed version as the first thing in 1.5.x.
Fixed in master, will be in 1.5.0.