From: Remi Gacogne Date: Thu, 10 Dec 2020 14:01:14 +0000 (+0100) Subject: dnsdist: Don't copy the policy for every query X-Git-Tag: rec-4.5.0-alpha1~76^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F9850%2Fhead;p=thirdparty%2Fpdns.git dnsdist: Don't copy the policy for every query It used to be a cheap object to copy but it now hold two strings. --- diff --git a/pdns/dnsdist.cc b/pdns/dnsdist.cc index e414ddbd29..39cb2e197e 100644 --- a/pdns/dnsdist.cc +++ b/pdns/dnsdist.cc @@ -1196,11 +1196,9 @@ ProcessQueryResult processQuery(DNSQuestion& dq, ClientState& cs, LocalHolders& } std::shared_ptr serverPool = getPool(*holders.pools, dq.poolname); + std::shared_ptr poolPolicy = serverPool->policy; dq.packetCache = serverPool->packetCache; - auto policy = *(holders.policy); - if (serverPool->policy != nullptr) { - policy = *(serverPool->policy); - } + const auto& policy = poolPolicy != nullptr ? *poolPolicy : *(holders.policy); const auto servers = serverPool->getServers(); selectedBackend = policy.getSelectedBackend(*servers, dq);