From 3f75ccbe75f2c654229950a3e5bc2b00c20ece73 Mon Sep 17 00:00:00 2001 From: fbachmann Date: Tue, 10 Apr 2018 20:16:09 +0200 Subject: [PATCH] fix bug in Downtime::IsInEffect() method that would always return false if the triggering window for a flexible downtime had passed --- lib/icinga/downtime.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/icinga/downtime.cpp b/lib/icinga/downtime.cpp index a52358359..4fe9a0085 100644 --- a/lib/icinga/downtime.cpp +++ b/lib/icinga/downtime.cpp @@ -158,16 +158,15 @@ bool Downtime::IsInEffect() const { double now = Utility::GetTime(); - if (now < GetStartTime() || - now > GetEndTime()) - return false; - - if (GetFixed()) - return true; + if (GetFixed()) { + /* fixed downtimes are in effect during the entire [start..end) interval */ + return (now >= GetStartTime() && now < GetEndTime()); + } double triggerTime = GetTriggerTime(); if (triggerTime == 0) + /* flexible downtime has not been triggered yet */ return false; return (now < triggerTime + GetDuration()); -- 2.50.1