]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Review comments: Count queries before desciding to cleanup; a missing std::move
authorOtto <otto.moerbeek@open-xchange.com>
Fri, 24 Sep 2021 07:10:11 +0000 (09:10 +0200)
committerOtto <otto.moerbeek@open-xchange.com>
Fri, 24 Sep 2021 07:59:44 +0000 (09:59 +0200)
pdns/recursordist/rec-tcpout.cc

index c4b2e8560a6cc85fd9ce6bac5a7d914fd4a6b7c2..8854ce12e0747ba9f366d12b28b59a9ff7c5dab1 100644 (file)
@@ -53,6 +53,11 @@ void TCPOutConnectionManager::cleanup(const struct timeval& now)
 
 void TCPOutConnectionManager::store(const struct timeval& now, const ComboAddress& ip, Connection&& connection)
 {
+  ++connection.d_numqueries;
+  if (s_maxQueries > 0 && connection.d_numqueries > s_maxQueries) {
+    return;
+  }
+
   if (d_idle_connections.size() >= s_maxIdlePerThread || d_idle_connections.count(ip) >= s_maxIdlePerAuth) {
     cleanup(now);
   }
@@ -64,12 +69,8 @@ void TCPOutConnectionManager::store(const struct timeval& now, const ComboAddres
     return;
   }
 
-  ++connection.d_numqueries;
-  if (s_maxQueries > 0 && connection.d_numqueries > s_maxQueries) {
-    return;
-  }
   gettimeofday(&connection.d_last_used, nullptr);
-  d_idle_connections.emplace(ip, connection);
+  d_idle_connections.emplace(ip, std::move(connection));
 }
 
 TCPOutConnectionManager::Connection TCPOutConnectionManager::get(const ComboAddress& ip)