From 55ebf98cbecdad288ba2e3f63f7026280c62f025 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 3 Jul 2014 15:50:31 +0200 Subject: core: introduce exit_status_set_is_empty() to make things a bit easier to read --- src/core/service.c | 2 +- src/shared/exit-status.c | 7 +++++++ src/shared/exit-status.h | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/core/service.c b/src/core/service.c index be88670bd8..0b19767d9e 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -335,7 +335,7 @@ static int service_verify(Service *s) { return -EINVAL; } - if (s->type == SERVICE_ONESHOT && !(set_isempty(s->restart_force_status.signal) && set_isempty(s->restart_force_status.status))) { + if (s->type == SERVICE_ONESHOT && !exit_status_set_is_empty(&s->restart_force_status)) { log_error_unit(UNIT(s)->id, "%s has RestartForceStatus= set, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id); return -EINVAL; } diff --git a/src/shared/exit-status.c b/src/shared/exit-status.c index 942ac86128..f3434f7ccc 100644 --- a/src/shared/exit-status.c +++ b/src/shared/exit-status.c @@ -216,3 +216,10 @@ void exit_status_set_free(ExitStatusSet *x) { set_free(x->signal); x->status = x->signal = NULL; } + +bool exit_status_set_is_empty(ExitStatusSet *x) { + if (!x) + return true; + + return set_isempty(x->status) && set_isempty(x->signal); +} diff --git a/src/shared/exit-status.h b/src/shared/exit-status.h index 744f2d5376..7438508e4d 100644 --- a/src/shared/exit-status.h +++ b/src/shared/exit-status.h @@ -97,3 +97,4 @@ bool is_clean_exit(int code, int status, ExitStatusSet *success_status); bool is_clean_exit_lsb(int code, int status, ExitStatusSet *success_status); void exit_status_set_free(ExitStatusSet *x); +bool exit_status_set_is_empty(ExitStatusSet *x); -- cgit v1.2.3-54-g00ecf