]> granicus.if.org Git - icinga2/commitdiff
Fix: Check attempt counter is invalid.
authorGunnar Beutner <gunnar.beutner@netways.de>
Mon, 10 Mar 2014 07:56:31 +0000 (08:56 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Mon, 10 Mar 2014 07:56:31 +0000 (08:56 +0100)
Fixes #5734

lib/icinga/service-check.cpp

index ca9f4795b75a7d6b7784f000e6106e066126027d..fd5ac59c1bb643d2a9f2e42f59eee96f6585e8c0 100644 (file)
@@ -262,7 +262,7 @@ void Service::ProcessCheckResult(const CheckResult::Ptr& cr, const String& autho
        SetLastStateType(old_stateType);
        SetLastReachable(reachable);
 
-       long attempt;
+       long attempt = 1;
 
        if (!old_cr) {
                SetStateType(StateTypeHard);
@@ -270,14 +270,12 @@ void Service::ProcessCheckResult(const CheckResult::Ptr& cr, const String& autho
                if (old_state == StateOK && old_stateType == StateTypeSoft)
                        SetStateType(StateTypeHard); // SOFT OK -> HARD OK
 
-               attempt = 1;
                recovery = true;
                ResetNotificationNumbers();
                SetLastStateOK(Utility::GetTime());
        } else {
                if (old_attempt >= GetMaxCheckAttempts()) {
                        SetStateType(StateTypeHard);
-                       attempt = 1;
                } else if (GetStateType() == StateTypeSoft || GetState() == StateOK) {
                        SetStateType(StateTypeSoft);
                        attempt = old_attempt + 1;