shared/bus-unit-util: define helper for SuccessActionExitStatus= and friend

This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2025-06-27 16:23:31 +02:00
parent bfa7d82661
commit 9806468ea4

View File

@@ -2169,6 +2169,26 @@ static int bus_append_exit_status(sd_bus_message *m, const char *field, const ch
return 1;
}
static int bus_append_action_exit_status(sd_bus_message *m, const char *field, const char *eq) {
int r;
if (isempty(eq))
r = sd_bus_message_append(m, "(sv)", field, "i", -1);
else {
uint8_t u;
r = safe_atou8(eq, &u);
if (r < 0)
return log_error_errno(r, "Failed to parse %s=%s", field, eq);
r = sd_bus_message_append(m, "(sv)", field, "i", (int) u);
}
if (r < 0)
return bus_log_create_error(r);
return 1;
}
static int bus_append_listen(sd_bus_message *m, const char *field, const char *eq) {
int r;
@@ -2902,23 +2922,8 @@ static int bus_append_unit_property(sd_bus_message *m, const char *field, const
return bus_append_safe_atou(m, field, eq);
if (STR_IN_SET(field, "SuccessActionExitStatus",
"FailureActionExitStatus")) {
if (isempty(eq))
r = sd_bus_message_append(m, "(sv)", field, "i", -1);
else {
uint8_t u;
r = safe_atou8(eq, &u);
if (r < 0)
return log_error_errno(r, "Failed to parse %s=%s", field, eq);
r = sd_bus_message_append(m, "(sv)", field, "i", (int) u);
}
if (r < 0)
return bus_log_create_error(r);
return 1;
}
"FailureActionExitStatus"))
return bus_append_action_exit_status(m, field, eq);
if (unit_dependency_from_string(field) >= 0 ||
STR_IN_SET(field, "Documentation",