From: Lennart Poettering Date: Fri, 19 Sep 2025 08:13:45 +0000 (+0200) Subject: core: fix status output suppression X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F39029%2Fhead;p=thirdparty%2Fsystemd.git core: fix status output suppression This fixes two things: first of all it ensures we take the override status output field properly into account, instead of going directly to the regular one. Moreover, it ensures that we bypass auto for both notice + emergency, since both have the same "impact", and, don't limit this for notice only. --- diff --git a/src/core/manager.c b/src/core/manager.c index 2529a7c3f10..c7cf59082c8 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 62652540bc0..9b7d00da100 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) {