mirror of
https://github.com/Icinga/icinga2.git
synced 2025-09-21 16:57:58 +02:00
Fix: Timeperiods: legacy-timeperiod parsed empty, results in skipped checks
Fixes #4336
This commit is contained in:
parent
fe35791b1b
commit
a93543db7f
@ -46,7 +46,7 @@ bool LegacyTimePeriod::IsInTimeRange(tm *begin, tm *end, int stride, tm *referen
|
|||||||
|
|
||||||
int daynumber = (tsref - tsbegin) / (24 * 60 * 60);
|
int daynumber = (tsref - tsbegin) / (24 * 60 * 60);
|
||||||
|
|
||||||
if (daynumber % stride == 0)
|
if (stride > 1 && daynumber % stride == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -324,6 +324,8 @@ bool LegacyTimePeriod::IsInDayDefinition(const String& daydef, tm *reference)
|
|||||||
|
|
||||||
ParseTimeRange(daydef, &begin, &end, &stride, reference);
|
ParseTimeRange(daydef, &begin, &end, &stride, reference);
|
||||||
|
|
||||||
|
Log(LogDebug, "icinga", "ParseTimeRange: '" + daydef + "' => " + Convert::ToString(mktime(&begin)) + " -> " + Convert::ToString(mktime(&end)) + ", stride: " + Convert::ToString(stride));
|
||||||
|
|
||||||
return IsInTimeRange(&begin, &end, stride, reference);
|
return IsInTimeRange(&begin, &end, stride, reference);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,6 +391,8 @@ Array::Ptr LegacyTimePeriod::ScriptFunc(const TimePeriod::Ptr& tp, double begin,
|
|||||||
time_t refts = begin + i * 24 * 60 * 60;
|
time_t refts = begin + i * 24 * 60 * 60;
|
||||||
tm reference;
|
tm reference;
|
||||||
|
|
||||||
|
Log(LogDebug, "icinga", "Checking reference time " + Convert::ToString(refts));
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
tm *temp = localtime(&refts);
|
tm *temp = localtime(&refts);
|
||||||
|
|
||||||
@ -411,8 +415,12 @@ Array::Ptr LegacyTimePeriod::ScriptFunc(const TimePeriod::Ptr& tp, double begin,
|
|||||||
String key;
|
String key;
|
||||||
Value value;
|
Value value;
|
||||||
BOOST_FOREACH(boost::tie(key, value), ranges) {
|
BOOST_FOREACH(boost::tie(key, value), ranges) {
|
||||||
if (!IsInDayDefinition(key, &reference))
|
if (!IsInDayDefinition(key, &reference)) {
|
||||||
|
Log(LogDebug, "icinga", "Not in day definition '" + key + "'.");
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Log(LogDebug, "icinga", "In day definition '" + key + "'.");
|
||||||
|
|
||||||
ProcessTimeRanges(value, &reference, segments);
|
ProcessTimeRanges(value, &reference, segments);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user