From 1d2b008dcbd7d371616207737e35c25d97fdcaab Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Tue, 3 Mar 2015 09:56:38 +0100 Subject: [PATCH] Fix validator for TimePeriod ranges fixes #8568 --- lib/icinga/timeperiod.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/icinga/timeperiod.cpp b/lib/icinga/timeperiod.cpp index f3ee7ee9a..825e52e7c 100644 --- a/lib/icinga/timeperiod.cpp +++ b/lib/icinga/timeperiod.cpp @@ -314,16 +314,16 @@ void TimePeriod::ValidateRanges(const String& location, const TimePeriod::Ptr& o return; /* create a fake time environment to validate the definitions */ - time_t begin = Utility::GetTime(); - time_t end = begin + 24 * 60 * 60; - tm reference = Utility::LocalTime(end); - tm begin_tm, end_tm; + time_t refts = Utility::GetTime(); + tm reference = Utility::LocalTime(refts); Array::Ptr segments = new Array(); ObjectLock olock(ranges); BOOST_FOREACH(const Dictionary::Pair& kv, ranges) { try { - LegacyTimePeriod::ParseTimeSpec(kv.first, &begin_tm, &end_tm, &reference); + tm begin_tm, end_tm; + int stride; + LegacyTimePeriod::ParseTimeRange(kv.first, &begin_tm, &end_tm, &stride, &reference); } catch (std::exception&) { BOOST_THROW_EXCEPTION(ScriptError("Validation failed for " + location + ": Invalid time specification.", object->GetDebugInfo()));