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);
if (streq(name, "PIDs")) {
DBusMessageIter sub;
+ unsigned n = 0;
if (dbus_message_iter_get_arg_type(i) != DBUS_TYPE_ARRAY ||
dbus_message_iter_get_element_type(i) != DBUS_TYPE_UINT32)
if (pid <= 1)
return -EINVAL;
- r = set_put(s->pids, LONG_TO_PTR(pid));
- if (r < 0 && r != -EEXIST)
- return r;
+ if (mode != UNIT_CHECK) {
+ r = set_put(s->pids, LONG_TO_PTR(pid));
+ if (r < 0 && r != -EEXIST)
+ return r;
+ }
dbus_message_iter_next(&sub);
+ n++;
}
- if (set_size(s->pids) <= 0)
+ if (n <= 0)
return -EINVAL;
return 1;
+
+ } else if (streq(name, "TimeoutStopUSec")) {
+
+ if (dbus_message_iter_get_arg_type(i) != DBUS_TYPE_UINT64)
+ return -EINVAL;
+
+ if (mode != UNIT_CHECK) {
+ uint64_t t;
+
+ 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;
}
return 0;
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;