]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Don't copy the policy for every query 9850/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 10 Dec 2020 14:01:14 +0000 (15:01 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 10 Dec 2020 14:01:14 +0000 (15:01 +0100)
It used to be a cheap object to copy but it now hold two strings.

pdns/dnsdist.cc

index e414ddbd29d9a23db9014fe09dacd3bc5eb4bf5e..39cb2e197e4170eb3b6a8396211933b5759c320d 100644 (file)
@@ -1196,11 +1196,9 @@ ProcessQueryResult processQuery(DNSQuestion& dq, ClientState& cs, LocalHolders&
     }
 
     std::shared_ptr<ServerPool> serverPool = getPool(*holders.pools, dq.poolname);
+    std::shared_ptr<ServerPolicy> 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);