diff --git a/src/core/manager.c b/src/core/manager.c index 2529a7c3f1..c7cf59082c 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -4525,10 +4525,10 @@ static bool manager_should_show_status(Manager *m, StatusType type) { return false; /* If we cannot find out the status properly, just proceed. */ - if (type != STATUS_TYPE_EMERGENCY && manager_check_ask_password(m) > 0) + if (type < STATUS_TYPE_EMERGENCY && manager_check_ask_password(m) > 0) return false; - if (type == STATUS_TYPE_NOTICE && m->show_status != SHOW_STATUS_NO) + if (type >= STATUS_TYPE_NOTICE && manager_get_show_status(m) != SHOW_STATUS_NO) return true; return manager_get_show_status_on(m); diff --git a/src/core/unit.h b/src/core/unit.h index 62652540bc..9b7d00da10 100644 --- a/src/core/unit.h +++ b/src/core/unit.h @@ -52,10 +52,12 @@ typedef enum OOMPolicy { } OOMPolicy; typedef enum StatusType { - STATUS_TYPE_EPHEMERAL, + STATUS_TYPE_EPHEMERAL, /* ordered by severity! Do not break order */ STATUS_TYPE_NORMAL, STATUS_TYPE_NOTICE, STATUS_TYPE_EMERGENCY, + _STATUS_TYPE_MAX, + _STATUS_TYPE_INVALID = -EINVAL, } StatusType; static inline bool UNIT_IS_ACTIVE_OR_RELOADING(UnitActiveState t) {