X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fdbus-scope.c;h=771820c2d81e3a0a0cc40e52124a24ab89ebeadb;hb=d07f7b9ef2835c290d6beadebd17d15308608eea;hp=30b9c00335bb740ed1f29a7102008473c110ab99;hpb=d7550a6752be85f98408a86b7ae23a033e9b2983;p=elogind.git diff --git a/src/core/dbus-scope.c b/src/core/dbus-scope.c index 30b9c0033..771820c2d 100644 --- a/src/core/dbus-scope.c +++ b/src/core/dbus-scope.c @@ -93,6 +93,7 @@ static int bus_scope_set_transient_property( 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) @@ -111,17 +112,35 @@ static int bus_scope_set_transient_property( 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; + } + + return 1; } return 0;