From: Otto Date: Fri, 24 Sep 2021 07:10:11 +0000 (+0200) Subject: Review comments: Count queries before desciding to cleanup; a missing std::move X-Git-Tag: rec-4.6.0-alpha1~2^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=be0a76caf81b36e8dcd2b4b21bdcfb3bcf61e60c;p=thirdparty%2Fpdns.git Review comments: Count queries before desciding to cleanup; a missing std::move --- diff --git a/pdns/recursordist/rec-tcpout.cc b/pdns/recursordist/rec-tcpout.cc index c4b2e8560a..8854ce12e0 100644 --- a/pdns/recursordist/rec-tcpout.cc +++ b/pdns/recursordist/rec-tcpout.cc @@ -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)