diff --git a/lib/icinga/apiactions.cpp b/lib/icinga/apiactions.cpp index 6e9fddd4d7..c84b399185 100644 --- a/lib/icinga/apiactions.cpp +++ b/lib/icinga/apiactions.cpp @@ -932,7 +932,7 @@ Dictionary::Ptr ApiActions::ExecuteCommand(const ConfigObject::Ptr& object, cons for (const Zone::Ptr& zone : ConfigType::GetObjectsByType()) { /* Fetch immediate child zone members */ if (zone->GetParent() == localZone && zone->CanAccessObject(endpointPtr->GetZone())) { - std::set endpoints = zone->GetEndpoints(); + auto endpoints (zone->GetEndpoints()); for (const Endpoint::Ptr& childEndpoint : endpoints) { if (!(childEndpoint->GetCapabilities() & (uint_fast64_t)ApiCapabilities::ExecuteArbitraryCommand)) { diff --git a/lib/icinga/clusterevents.cpp b/lib/icinga/clusterevents.cpp index b49d2071d0..ea29d1ece8 100644 --- a/lib/icinga/clusterevents.cpp +++ b/lib/icinga/clusterevents.cpp @@ -966,7 +966,7 @@ Value ClusterEvents::ExecuteCommandAPIHandler(const MessageOrigin::Ptr& origin, for (const Zone::Ptr &zone : ConfigType::GetObjectsByType()) { /* Fetch immediate child zone members */ if (zone->GetParent() == localZone && zone->CanAccessObject(endpointZone)) { - std::set endpoints = zone->GetEndpoints(); + auto endpoints (zone->GetEndpoints()); for (const Endpoint::Ptr &childEndpoint : endpoints) { if (!(childEndpoint->GetCapabilities() & (uint_fast64_t)ApiCapabilities::ExecuteArbitraryCommand)) { diff --git a/lib/livestatus/zonestable.cpp b/lib/livestatus/zonestable.cpp index d86cc7256d..b5498a62a7 100644 --- a/lib/livestatus/zonestable.cpp +++ b/lib/livestatus/zonestable.cpp @@ -70,8 +70,7 @@ Value ZonesTable::EndpointsAccessor(const Value& row) if (!zone) return Empty; - std::set endpoints = zone->GetEndpoints(); - + auto endpoints (zone->GetEndpoints()); ArrayData result; for (const Endpoint::Ptr& endpoint : endpoints) { diff --git a/lib/remote/zone.cpp b/lib/remote/zone.cpp index 5ae1468c16..9af662a240 100644 --- a/lib/remote/zone.cpp +++ b/lib/remote/zone.cpp @@ -51,10 +51,9 @@ Zone::Ptr Zone::GetParent() const return m_Parent; } -std::set Zone::GetEndpoints() const +std::vector Zone::GetEndpoints() const { - std::set result; - + std::vector result; Array::Ptr endpoints = GetEndpointsRaw(); if (endpoints) { @@ -66,7 +65,7 @@ std::set Zone::GetEndpoints() const if (!endpoint) continue; - result.insert(endpoint); + result.emplace_back(std::move(endpoint)); } } diff --git a/lib/remote/zone.hpp b/lib/remote/zone.hpp index 897b18e96c..af3a9db237 100644 --- a/lib/remote/zone.hpp +++ b/lib/remote/zone.hpp @@ -22,7 +22,7 @@ class Zone final : public ObjectImpl void OnAllConfigLoaded() override; Zone::Ptr GetParent() const; - std::set GetEndpoints() const; + std::vector GetEndpoints() const; std::vector GetAllParentsRaw() const; Array::Ptr GetAllParents() const override;