chiark / gitweb /
bus: don't fail if GetAll() is used to get properties of the built-in interfaces
[elogind.git] / src / libsystemd-bus / bus-objects.c
index 31d761e2154a98b18ef3e7432fb57b5481f15bc6..aa0be37a9de8061d918e9bbb258c651cd0d252f2 100644 (file)
@@ -585,7 +585,7 @@ static int property_get_all_callbacks_run(
 
         _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
         struct node_vtable *c;
-        bool found_interface = false;
+        bool found_interface;
         int r;
 
         assert(bus);
@@ -600,6 +600,11 @@ static int property_get_all_callbacks_run(
         if (r < 0)
                 return r;
 
+        found_interface =
+                streq(iface, "org.freedesktop.DBus.Properties") ||
+                streq(iface, "org.freedesktop.DBus.Peer") ||
+                streq(iface, "org.freedesktop.DBus.Introspectable");
+
         LIST_FOREACH(vtables, c, first) {
                 _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
                 void *u;