diff options
author | David Herrmann <dh.herrmann@googlemail.com> | 2015-11-18 08:05:12 +0100 |
---|---|---|
committer | David Herrmann <dh.herrmann@googlemail.com> | 2015-11-18 08:05:12 +0100 |
commit | 2bcfd345ffa77a103e0d6778b9652d1d391a6bf6 (patch) | |
tree | 2e89849b4139742a2996a648086e947366f19eaf /src/core/dbus-timer.c | |
parent | 92939fc4c0261dccd4b755186aba84a9b1412bed (diff) | |
parent | 6348d701bd24afcca4857417e66756f752f02136 (diff) |
Merge pull request #1936 from poettering/transient-timers
Fix transient timers and other fixes
Diffstat (limited to 'src/core/dbus-timer.c')
-rw-r--r-- | src/core/dbus-timer.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/core/dbus-timer.c b/src/core/dbus-timer.c index a8a280d961..2e6c479c3a 100644 --- a/src/core/dbus-timer.c +++ b/src/core/dbus-timer.c @@ -182,6 +182,7 @@ const sd_bus_vtable bus_timer_vtable[] = { SD_BUS_PROPERTY("AccuracyUSec", "t", bus_property_get_usec, offsetof(Timer, accuracy_usec), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("Persistent", "b", bus_property_get_bool, offsetof(Timer, persistent), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("WakeSystem", "b", bus_property_get_bool, offsetof(Timer, wake_system), SD_BUS_VTABLE_PROPERTY_CONST), + SD_BUS_PROPERTY("RemainAfterElapse", "b", bus_property_get_bool, offsetof(Timer, remain_after_elapse), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_VTABLE_END }; @@ -283,7 +284,6 @@ static int bus_timer_set_transient_property( return 1; } else if (streq(name, "WakeSystem")) { - int b; r = sd_bus_message_read(message, "b", &b); @@ -292,11 +292,24 @@ static int bus_timer_set_transient_property( if (mode != UNIT_CHECK) { t->wake_system = b; - unit_write_drop_in_private_format(UNIT(t), mode, name, "%s=%s\n", name, yes_no(t->wake_system)); + unit_write_drop_in_private_format(UNIT(t), mode, name, "%s=%s\n", name, yes_no(b)); } return 1; + } else if (streq(name, "RemainAfterElapse")) { + int b; + + r = sd_bus_message_read(message, "b", &b); + if (r < 0) + return r; + + if (mode != UNIT_CHECK) { + t->remain_after_elapse = b; + unit_write_drop_in_private_format(UNIT(t), mode, name, "%s=%s\n", name, yes_no(b)); + } + + return 1; } return 0; |