| From 44562e33655668033a8ee0a7a686671226da2110 Mon Sep 17 00:00:00 2001 |
| From: Brad Bishop <bradleyb@fuzziesquirrel.com> |
| Date: Tue, 13 Mar 2018 15:34:30 -0400 |
| Subject: [PATCH] sd-bus: Don't automatically add ObjectManager |
| |
| Even though sdbus helps manage org.freedesktop.DBus.ObjectManager |
| it must still be explicitly enabled by a library client. |
| |
| As such do not automatically add ObjectManager to GetManagedObjects |
| method call responses or InterfacesAdded/Removed signals. Bus |
| service client applications can potentially react to the appearance |
| of ObjectManager in these messages and follow up with a method call |
| on the interface, which isn't actually implemented on the objects |
| within the subtree, below the manager. |
| --- |
| src/libsystemd/sd-bus/bus-objects.c | 10 ---------- |
| 1 file changed, 10 deletions(-) |
| |
| diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c |
| index 6e00255b2..59f698402 100644 |
| --- a/src/libsystemd/sd-bus/bus-objects.c |
| +++ b/src/libsystemd/sd-bus/bus-objects.c |
| @@ -1076,10 +1076,6 @@ static int object_manager_serialize_path( |
| 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; |
| } |
| |
| @@ -2302,9 +2298,6 @@ static int object_added_append_all(sd_bus *bus, sd_bus_message *m, const char *p |
| if (r < 0) |
| return r; |
| r = sd_bus_message_append(m, "{sa{sv}}", "org.freedesktop.DBus.Properties", 0); |
| - if (r < 0) |
| - return r; |
| - r = sd_bus_message_append(m, "{sa{sv}}", "org.freedesktop.DBus.ObjectManager", 0); |
| if (r < 0) |
| return r; |
| |
| @@ -2473,9 +2466,6 @@ static int object_removed_append_all(sd_bus *bus, sd_bus_message *m, const char |
| if (r < 0) |
| return r; |
| r = sd_bus_message_append(m, "s", "org.freedesktop.DBus.Properties"); |
| - if (r < 0) |
| - return r; |
| - r = sd_bus_message_append(m, "s", "org.freedesktop.DBus.ObjectManager"); |
| if (r < 0) |
| return r; |
| |
| -- |
| 2.14.3 |
| |