Merge pull request #9794 from Icinga/round-notification-times-begin-end-not-to-crash-go-daemon

IcingaDB::PrepareObject(): round Notification#times.{begin,end} not to crash Go daemon
This commit is contained in:
Julian Brost 2023-06-27 17:08:41 +02:00 committed by GitHub
commit a2926b8604
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1392,8 +1392,16 @@ bool IcingaDB::PrepareObject(const ConfigObject::Ptr& object, Dictionary::Ptr& a
attributes->Set("timeperiod_id", GetObjectIdentifier(timeperiod));
if (notification->GetTimes()) {
attributes->Set("times_begin", notification->GetTimes()->Get("begin"));
attributes->Set("times_end",notification->GetTimes()->Get("end"));
auto begin (notification->GetTimes()->Get("begin"));
auto end (notification->GetTimes()->Get("end"));
if (begin != Empty && (double)begin >= 0) {
attributes->Set("times_begin", std::round((double)begin));
}
if (end != Empty && (double)end >= 0) {
attributes->Set("times_end", std::round((double)end));
}
}
attributes->Set("notification_interval", std::max(0.0, std::round(notification->GetInterval())));