summaryrefslogtreecommitdiff
path: root/src/core/dbus-util.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2023-02-17 15:33:13 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2023-02-23 15:09:13 +0900
commitfaac56d5d2bd078ddff81cd999874477e8e373ce (patch)
treee9d26833dc89dc1104e1bebb3bf69a529928634e /src/core/dbus-util.c
parentec1b4be82e8ec10cc5b092a74b80627f7624c257 (diff)
downloadsystemd-faac56d5d2bd078ddff81cd999874477e8e373ce.tar.gz
core/dbus-util: introduce bus_set_transient_tristate()
This will be used in later commits.
Diffstat (limited to 'src/core/dbus-util.c')
-rw-r--r--src/core/dbus-util.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c
index edfa0eb69a..461f6aafb2 100644
--- a/src/core/dbus-util.c
+++ b/src/core/dbus-util.c
@@ -93,6 +93,30 @@ int bus_set_transient_bool(
return 1;
}
+int bus_set_transient_tristate(
+ Unit *u,
+ const char *name,
+ int *p,
+ sd_bus_message *message,
+ UnitWriteFlags flags,
+ sd_bus_error *error) {
+
+ int v, r;
+
+ assert(p);
+
+ r = sd_bus_message_read(message, "b", &v);
+ if (r < 0)
+ return r;
+
+ if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
+ *p = v;
+ unit_write_settingf(u, flags, name, "%s=%s", name, yes_no(v));
+ }
+
+ return 1;
+}
+
int bus_set_transient_usec_internal(
Unit *u,
const char *name,