mirror of https://github.com/Icinga/icinga2.git
More bugfixes for timeperiods.
This commit is contained in:
parent
836c26da66
commit
2e600a7810
|
@ -289,10 +289,12 @@ void DynamicObject::InternalSetAttribute(const String& name, const Value& data,
|
|||
if (!allowEditConfig && (it->second.GetType() & Attribute_Config))
|
||||
BOOST_THROW_EXCEPTION(std::runtime_error("Config properties are immutable: '" + name + "'."));
|
||||
|
||||
it->second.SetValue(tx, data);
|
||||
if (tx > it->second.GetTx()) {
|
||||
it->second.SetValue(tx, data);
|
||||
|
||||
if (it->second.GetType() & Attribute_Config)
|
||||
m_ConfigTx = tx;
|
||||
if (it->second.GetType() & Attribute_Config)
|
||||
m_ConfigTx = tx;
|
||||
}
|
||||
}
|
||||
|
||||
if (IsRegistered()) {
|
||||
|
|
|
@ -185,7 +185,7 @@ shared_ptr<SSL_CTX> IcingaApplication::GetSSLContext(void) const
|
|||
return m_SSLContext;
|
||||
}
|
||||
|
||||
bool IcingaApplication::ResolveMacro(const String& macro, const Dictionary::Ptr& cr, String *result) const
|
||||
bool IcingaApplication::ResolveMacro(const String& macro, const Dictionary::Ptr&, String *result) const
|
||||
{
|
||||
double now = Utility::GetTime();
|
||||
|
||||
|
|
|
@ -118,29 +118,31 @@ Array::Ptr LegacyTimePeriod::ScriptFunc(const TimePeriod::Ptr& tp, double begin,
|
|||
|
||||
Dictionary::Ptr ranges = tp->Get("ranges");
|
||||
|
||||
time_t tempts = begin;
|
||||
tm reference;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
tm *temp = localtime(&tempts);
|
||||
|
||||
if (temp == NULL) {
|
||||
BOOST_THROW_EXCEPTION(posix_error()
|
||||
<< boost::errinfo_api_function("localtime")
|
||||
<< boost::errinfo_errno(errno));
|
||||
}
|
||||
|
||||
reference = *temp;
|
||||
#else /* _MSC_VER */
|
||||
if (localtime_r(&tempts, &reference) == NULL) {
|
||||
BOOST_THROW_EXCEPTION(posix_error()
|
||||
<< boost::errinfo_api_function("localtime_r")
|
||||
<< boost::errinfo_errno(errno));
|
||||
}
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
if (ranges) {
|
||||
for (int i = 0; i <= (end - begin) / (24 * 60 * 60); i++) {
|
||||
time_t refts = begin + i * 24 * 60 * 60;
|
||||
tm reference;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
tm *temp = localtime(&refts);
|
||||
|
||||
if (temp == NULL) {
|
||||
BOOST_THROW_EXCEPTION(posix_error()
|
||||
<< boost::errinfo_api_function("localtime")
|
||||
<< boost::errinfo_errno(errno));
|
||||
}
|
||||
|
||||
reference = *temp;
|
||||
#else /* _MSC_VER */
|
||||
if (localtime_r(&refts, &reference) == NULL) {
|
||||
BOOST_THROW_EXCEPTION(posix_error()
|
||||
<< boost::errinfo_api_function("localtime_r")
|
||||
<< boost::errinfo_errno(errno));
|
||||
}
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
ObjectLock olock(ranges);
|
||||
String key;
|
||||
Value value;
|
||||
|
@ -150,8 +152,6 @@ Array::Ptr LegacyTimePeriod::ScriptFunc(const TimePeriod::Ptr& tp, double begin,
|
|||
|
||||
ProcessTimeRanges(value, &reference, segments);
|
||||
}
|
||||
|
||||
reference.tm_mday++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -159,4 +159,3 @@ Array::Ptr LegacyTimePeriod::ScriptFunc(const TimePeriod::Ptr& tp, double begin,
|
|||
|
||||
return segments;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue