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()) {
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();
Dictionary::Ptr ranges = tp->Get("ranges");
- time_t tempts = begin;
- tm reference;
+
+
+ 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(&tempts);
+ tm *temp = localtime(&refts);
- if (temp == NULL) {
- BOOST_THROW_EXCEPTION(posix_error()
- << boost::errinfo_api_function("localtime")
- << boost::errinfo_errno(errno));
- }
+ if (temp == NULL) {
+ BOOST_THROW_EXCEPTION(posix_error()
+ << boost::errinfo_api_function("localtime")
+ << boost::errinfo_errno(errno));
+ }
- reference = *temp;
+ 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));
- }
+ if (localtime_r(&refts, &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++) {
ObjectLock olock(ranges);
String key;
Value value;
ProcessTimeRanges(value, &reference, segments);
}
-
- reference.tm_mday++;
}
}
return segments;
}
-