From: Alexander A. Klimov Date: Wed, 17 Apr 2019 11:52:13 +0000 (+0200) Subject: ApiListener#ApiTimerHandler(): delete all replayed logs X-Git-Tag: v2.11.0-rc1~144^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=refs%2Fpull%2F7126%2Fhead;p=icinga2 ApiListener#ApiTimerHandler(): delete all replayed logs refs #6932 --- diff --git a/lib/remote/apilistener.cpp b/lib/remote/apilistener.cpp index 4d788610f..3a454debb 100644 --- a/lib/remote/apilistener.cpp +++ b/lib/remote/apilistener.cpp @@ -741,11 +741,19 @@ void ApiListener::ApiTimerHandler() for (int ts : files) { bool need = false; + auto localZone (GetLocalEndpoint()->GetZone()); for (const Endpoint::Ptr& endpoint : ConfigType::GetObjectsByType()) { if (endpoint == GetLocalEndpoint()) continue; + auto zone (endpoint->GetZone()); + + /* only care for endpoints in a) the same zone b) our parent zone c) immediate child zones */ + if (!(zone == localZone || zone == localZone->GetParent() || zone->GetParent() == localZone)) { + continue; + } + if (endpoint->GetLogDuration() >= 0 && ts < now - endpoint->GetLogDuration()) continue;