chiark / gitweb /
Fix possible lack of status messages on shutdown/reboot
[elogind.git] / src / core / dbus-scope.c
index 0205cfff6e0c6ee178a59052f50989a542eedcaf..c790d26cfec7de91f2dc0fb3fb65f95c932dc5d9 100644 (file)
@@ -51,7 +51,7 @@
         BUS_UNIT_INTERFACES_LIST                     \
         "org.freedesktop.systemd1.Scope\0"
 
-const char bus_scope_interface[] _introspect_("Scope") = BUS_SCOPE_INTERFACE;
+const char bus_scope_interface[] = BUS_SCOPE_INTERFACE;
 
 static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_scope_append_scope_result, scope_result, ScopeResult);
 
@@ -93,7 +93,7 @@ static int bus_scope_set_transient_property(
 
         if (streq(name, "PIDs")) {
                 DBusMessageIter sub;
-                unsigned n;
+                unsigned n = 0;
 
                 if (dbus_message_iter_get_arg_type(i) != DBUS_TYPE_ARRAY ||
                     dbus_message_iter_get_element_type(i) != DBUS_TYPE_UINT32)
@@ -138,6 +138,8 @@ static int bus_scope_set_transient_property(
                         dbus_message_iter_get_basic(i, &t);
 
                         s->timeout_stop_usec = t;
+
+                        unit_write_drop_in_format(UNIT(s), mode, name, "[Scope]\nTimeoutStopSec=%lluus\n", (unsigned long long) t);
                 }
 
                 return 1;
@@ -170,6 +172,10 @@ int bus_scope_set_property(
                 r = bus_scope_set_transient_property(s, name, i, mode, error);
                 if (r != 0)
                         return r;
+
+                r = bus_kill_context_set_transient_property(u, &s->kill_context, name, i, mode, error);
+                if (r != 0)
+                        return r;
         }
 
         return 0;