shared/bus-unit-util: add helper for TimersCalendar property

This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2025-06-27 16:16:04 +02:00
parent c3c21b2bc4
commit bfa7d82661

View File

@@ -2203,6 +2203,19 @@ static int bus_append_timers_monotonic(sd_bus_message *m, const char *field, con
return 1;
}
static int bus_append_timers_calendar(sd_bus_message *m, const char *field, const char *eq) {
int r;
if (isempty(eq))
r = sd_bus_message_append(m, "(sv)", "TimersCalendar", "a(ss)", 0);
else
r = sd_bus_message_append(m, "(sv)", "TimersCalendar", "a(ss)", 1, field, eq);
if (r < 0)
return bus_log_create_error(r);
return 1;
}
static int bus_append_cgroup_property(sd_bus_message *m, const char *field, const char *eq) {
if (STR_IN_SET(field, "DevicePolicy",
"Slice",
@@ -2827,8 +2840,6 @@ static int bus_append_socket_property(sd_bus_message *m, const char *field, cons
return 0;
}
static int bus_append_timer_property(sd_bus_message *m, const char *field, const char *eq) {
int r;
if (STR_IN_SET(field, "WakeSystem",
"RemainAfterElapse",
"Persistent",
@@ -2850,16 +2861,8 @@ static int bus_append_timer_property(sd_bus_message *m, const char *field, const
"OnUnitInactiveSec"))
return bus_append_timers_monotonic(m, field, eq);
if (streq(field, "OnCalendar")) {
if (isempty(eq))
r = sd_bus_message_append(m, "(sv)", "TimersCalendar", "a(ss)", 0);
else
r = sd_bus_message_append(m, "(sv)", "TimersCalendar", "a(ss)", 1, field, eq);
if (r < 0)
return bus_log_create_error(r);
return 1;
}
if (streq(field, "OnCalendar"))
return bus_append_timers_calendar(m, field, eq);
return 0;
}