mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-31 01:24:19 +02:00
Fix incorrect week day calculation in LegacyTimePeriod::ParseTimeSpec
fixes #6943
This commit is contained in:
parent
9f6b90cd2d
commit
407f88e185
@ -234,7 +234,7 @@ void LegacyTimePeriod::ParseTimeSpec(const String& timespec, tm *begin, tm *end,
|
|||||||
if (tokens.size() > 1)
|
if (tokens.size() > 1)
|
||||||
FindNthWeekday(wday, n, begin);
|
FindNthWeekday(wday, n, begin);
|
||||||
else
|
else
|
||||||
begin->tm_mday += - begin->tm_wday + wday;
|
begin->tm_mday += (7 - begin->tm_wday + wday) % 7;
|
||||||
|
|
||||||
begin->tm_hour = 0;
|
begin->tm_hour = 0;
|
||||||
begin->tm_min = 0;
|
begin->tm_min = 0;
|
||||||
@ -247,7 +247,7 @@ void LegacyTimePeriod::ParseTimeSpec(const String& timespec, tm *begin, tm *end,
|
|||||||
if (tokens.size() > 1)
|
if (tokens.size() > 1)
|
||||||
FindNthWeekday(wday, n, end);
|
FindNthWeekday(wday, n, end);
|
||||||
else
|
else
|
||||||
end->tm_mday += - end->tm_wday + wday;
|
end->tm_mday += (7 - end->tm_wday + wday) % 7;
|
||||||
|
|
||||||
end->tm_hour = 0;
|
end->tm_hour = 0;
|
||||||
end->tm_min = 0;
|
end->tm_min = 0;
|
||||||
|
@ -114,11 +114,17 @@ std::pair<double, double> ScheduledDowntime::FindNextSegment(void)
|
|||||||
|
|
||||||
ObjectLock olock(ranges);
|
ObjectLock olock(ranges);
|
||||||
BOOST_FOREACH(const Dictionary::Pair& kv, ranges) {
|
BOOST_FOREACH(const Dictionary::Pair& kv, ranges) {
|
||||||
|
Log(LogDebug, "ScheduledDowntime")
|
||||||
|
<< "Evaluating segment: " << kv.first << ": " << kv.second << " at ";
|
||||||
|
|
||||||
Dictionary::Ptr segment = LegacyTimePeriod::FindNextSegment(kv.first, kv.second, &reference);
|
Dictionary::Ptr segment = LegacyTimePeriod::FindNextSegment(kv.first, kv.second, &reference);
|
||||||
|
|
||||||
if (!segment)
|
if (!segment)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
Log(LogDebug, "ScheduledDowntime")
|
||||||
|
<< "Considering segment: " << Utility::FormatDateTime("%c", segment->Get("begin")) << " -> " << Utility::FormatDateTime("%c", segment->Get("end"));
|
||||||
|
|
||||||
double begin = segment->Get("begin");
|
double begin = segment->Get("begin");
|
||||||
|
|
||||||
if (begin < now)
|
if (begin < now)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user