diff --git a/lib/icinga/host.cpp b/lib/icinga/host.cpp index e50ba9b6f..22dd79b40 100644 --- a/lib/icinga/host.cpp +++ b/lib/icinga/host.cpp @@ -180,18 +180,14 @@ int Host::GetSeverity() const return 0; } - int severity = 0; - - if (IsReachable()) { - severity = 64; - } else { - severity = 32; - } + int severity = 32; // DOWN if (IsAcknowledged()) { severity += 512; } else if (IsInDowntime()) { severity += 256; + } else if (!IsReachable()) { + severity += 1024; } else { severity += 2048; } diff --git a/lib/icinga/service.cpp b/lib/icinga/service.cpp index 11d7c9633..c24647c82 100644 --- a/lib/icinga/service.cpp +++ b/lib/icinga/service.cpp @@ -133,14 +133,12 @@ int Service::GetSeverity() const severity = 256; } - Host::Ptr host = GetHost(); - ObjectLock hlock (host); - if (host->GetState() != HostUp) { - severity += 1024; - } else if (IsAcknowledged()) { + if (IsAcknowledged()) { severity += 512; } else if (IsInDowntime()) { severity += 256; + } else if (!IsReachable()) { + severity += 1024; } else { severity += 2048; }