From 9d40de78eb426be2e15969cb256c8ab278c2e091 Mon Sep 17 00:00:00 2001 From: William Calliari <42240136+w1ll-i-code@users.noreply.github.com> Date: Wed, 16 Apr 2025 12:04:53 +0200 Subject: [PATCH] Address comments from review --- lib/icinga/checkable-check.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/icinga/checkable-check.cpp b/lib/icinga/checkable-check.cpp index 4fc19d232..fe7b651be 100644 --- a/lib/icinga/checkable-check.cpp +++ b/lib/icinga/checkable-check.cpp @@ -344,14 +344,21 @@ Checkable::ProcessingResult Checkable::ProcessCheckResult(const CheckResult::Ptr cr->SetVarsAfter(vars_after); - bool problem_change = false; if (service) { SetLastCheckResult(cr); } else { bool wasProblem = GetProblem(); + SetLastCheckResult(cr); - problem_change = GetProblem() != wasProblem; + + if (GetProblem() != wasProblem) { + auto services = host->GetServices(); + for (auto& service : services) { + Service::OnHostProblemChanged(service, cr, origin); + } + } } + bool was_flapping = IsFlapping(); UpdateFlappingStatus(cr->GetState()); @@ -501,13 +508,7 @@ Checkable::ProcessingResult Checkable::ProcessCheckResult(const CheckResult::Ptr if ((stateChange || hardChange) && !children.empty() && (affectsPreviousStateChildren || AffectsChildren())) OnReachabilityChanged(this, cr, children, origin); - olock->Unlock(); - if (!service && problem_change) { - auto services = host->GetServices(); - for (auto& service : services) { - Service::OnHostProblemChanged(service, cr, origin); - } - } + olock.Unlock(); if (recovery) { for (auto& child : children) {