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.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.