X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fdbus-scope.c;h=c790d26cfec7de91f2dc0fb3fb65f95c932dc5d9;hb=5b1869eaa22e365ab6595924fe96549b279b5ebc;hp=bddf8f4753ca57332f572922a21a6d7d6462075c;hpb=adb3a45d9a1cebdec30406cc2c04503fc5e735be;p=elogind.git diff --git a/src/core/dbus-scope.c b/src/core/dbus-scope.c index bddf8f475..c790d26cf 100644 --- a/src/core/dbus-scope.c +++ b/src/core/dbus-scope.c @@ -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) @@ -126,6 +126,23 @@ static int bus_scope_set_transient_property( 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; @@ -155,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;