]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
bus: report builtins in GetManagedObjects() (#5799)
authorDavid Herrmann <dh.herrmann@gmail.com>
Wed, 26 Apr 2017 00:36:30 +0000 (02:36 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 26 Apr 2017 00:36:30 +0000 (20:36 -0400)
We already report builtin interfaces with InterfacesAdded and InterfacesRemoved. However,
we never reported them in GetManagedObjects(). This might end up confusing callers that
want to use those interfaces (or simply rely on the interface count to be coherent).

Report the builtins for all objects that are queried.

src/libsystemd/sd-bus/bus-objects.c

index 9bd07ffcabbac14d7b21b7de95959b88e4c65895..b6f5afe1b3bc962db8892a542b5e80c969a2dc3a 100644 (file)
@@ -1057,6 +1057,22 @@ static int object_manager_serialize_path(
                         if (r < 0)
                                 return r;
 
+                        r = sd_bus_message_append(reply, "{sa{sv}}", "org.freedesktop.DBus.Peer", 0);
+                        if (r < 0)
+                                return r;
+
+                        r = sd_bus_message_append(reply, "{sa{sv}}", "org.freedesktop.DBus.Introspectable", 0);
+                        if (r < 0)
+                                return r;
+
+                        r = sd_bus_message_append(reply, "{sa{sv}}", "org.freedesktop.DBus.Properties", 0);
+                        if (r < 0)
+                                return r;
+
+                        r = sd_bus_message_append(reply, "{sa{sv}}", "org.freedesktop.DBus.ObjectManager", 0);
+                        if (r < 0)
+                                return r;
+
                         found_something = true;
                 }