]> granicus.if.org Git - icinga2/commitdiff
More bugfixes for notifications.
authorGunnar Beutner <gunnar.beutner@netways.de>
Thu, 21 Mar 2013 10:37:34 +0000 (11:37 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Thu, 21 Mar 2013 10:37:34 +0000 (11:37 +0100)
lib/icinga/service-check.cpp

index 0e92ede35c4be157f3301bab057f6309cf0d97bb..ecd87405b62ad5fad0527663d6d8d132cc21a40c 100644 (file)
@@ -502,6 +502,9 @@ void Service::ProcessCheckResult(const Dictionary::Ptr& cr)
 
        bool hardChange = (GetStateType() == StateTypeHard && old_stateType == StateTypeSoft);
 
+       if (old_state != GetState() && old_stateType == StateTypeHard && GetStateType() == StateTypeHard)
+               hardChange = true;
+
        if (hardChange)
                SetLastHardStateChange(now);
 
@@ -516,9 +519,6 @@ void Service::ProcessCheckResult(const Dictionary::Ptr& cr)
        if (old_state == StateOK && old_stateType == StateTypeSoft)
                send_notification = false; /* Don't send notifications for SOFT-OK -> HARD-OK. */
 
-       if (old_state != StateOK && GetState() == StateOK && old_stateType == StateTypeHard && GetState() == StateTypeHard)
-               send_notification = true; /* Send notifications for hard recoveries. (HARD-NON-OK -> HARD-OK) */
-
        bool send_downtime_notification = m_LastInDowntime != in_downtime;
        m_LastInDowntime = in_downtime;
        Touch("last_in_downtime");