From c02b9d74a9e42a168dc9e5509d55d9766ecff5ac Mon Sep 17 00:00:00 2001 From: Yonas Habteab Date: Wed, 15 Jan 2025 17:27:28 +0100 Subject: [PATCH] IcingaDB: Send reachablity state updates for all children --- lib/icingadb/icingadb-objects.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/icingadb/icingadb-objects.cpp b/lib/icingadb/icingadb-objects.cpp index a7618e75a..cbdc48026 100644 --- a/lib/icingadb/icingadb-objects.cpp +++ b/lib/icingadb/icingadb-objects.cpp @@ -96,8 +96,11 @@ void IcingaDB::ConfigStaticInitialize() AcknowledgementClearedHandler(checkable, removedBy, changeTime); }); - Checkable::OnReachabilityChanged.connect([](const Checkable::Ptr&, const CheckResult::Ptr&, std::set children, const MessageOrigin::Ptr&) { - IcingaDB::ReachabilityChangeHandler(children); + Checkable::OnReachabilityChanged.connect([](const Checkable::Ptr& parent, const CheckResult::Ptr&, std::set, const MessageOrigin::Ptr&) { + // Icinga DB Web needs to know about the reachability of all children, not just the direct ones. + // These might get updated with their next check result anyway, but we can't rely on that, since + // they might not be actively checked or have a very high check interval. + IcingaDB::ReachabilityChangeHandler(parent->GetAllChildren()); }); /* triggered on create, update and delete objects */