From 5a155346e72d68f4045c91e369499c9cc2246093 Mon Sep 17 00:00:00 2001 From: "Alexander A. Klimov" Date: Wed, 24 Apr 2024 12:33:56 +0200 Subject: [PATCH] [Refactor] l_LegacyDowntimesCache: store Downtime objects, not just their names to avoid names of vanished objects. --- lib/icinga/downtime.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/icinga/downtime.cpp b/lib/icinga/downtime.cpp index 0452a3c7d..c0f7d6e5e 100644 --- a/lib/icinga/downtime.cpp +++ b/lib/icinga/downtime.cpp @@ -15,7 +15,7 @@ using namespace icinga; static int l_NextDowntimeID = 1; static std::mutex l_DowntimeMutex; -static std::map l_LegacyDowntimesCache; +static std::map l_LegacyDowntimesCache; static Timer::Ptr l_DowntimesExpireTimer; static Timer::Ptr l_DowntimesStartTimer; @@ -108,7 +108,7 @@ void Downtime::Start(bool runtimeCreated) std::unique_lock lock(l_DowntimeMutex); SetLegacyId(l_NextDowntimeID); - l_LegacyDowntimesCache[l_NextDowntimeID] = GetName(); + l_LegacyDowntimesCache[l_NextDowntimeID] = this; l_NextDowntimeID++; } @@ -479,7 +479,7 @@ String Downtime::GetDowntimeIDFromLegacyID(int id) if (it == l_LegacyDowntimesCache.end()) return Empty; - return it->second; + return it->second->GetName(); } void Downtime::DowntimesStartTimerHandler()