From: Otto Moerbeek Date: Fri, 7 Mar 2025 12:16:42 +0000 (+0100) Subject: rec: make sure t_tcpClientCounts is always initialized X-Git-Tag: dnsdist-2.0.0-alpha1~37^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fca17931bb72f6c95d0e8007b95a091bbbae2e2e;p=thirdparty%2Fpdns.git rec: make sure t_tcpClientCounts is always initialized And while there make it file-local. --- diff --git a/pdns/recursordist/rec-main.cc b/pdns/recursordist/rec-main.cc index 8a607f5fb3..bd8dc542f3 100644 --- a/pdns/recursordist/rec-main.cc +++ b/pdns/recursordist/rec-main.cc @@ -2872,7 +2872,6 @@ static void recursorThread() t_proxyProtocolACL = g_initialProxyProtocolACL; t_proxyProtocolExceptions = g_initialProxyProtocolExceptions; t_udpclientsocks = std::make_unique(); - t_tcpClientCounts = std::make_unique(); if (g_proxyMapping) { t_proxyMapping = make_unique(*g_proxyMapping); } diff --git a/pdns/recursordist/rec-main.hh b/pdns/recursordist/rec-main.hh index 9082e01818..21e3927a83 100644 --- a/pdns/recursordist/rec-main.hh +++ b/pdns/recursordist/rec-main.hh @@ -288,9 +288,6 @@ extern boost::container::flat_set g_avoidUdpSourcePorts; /* without reuseport, all listeners share the same sockets */ typedef vector>> deferredAdd_t; -typedef map tcpClientCounts_t; -extern thread_local std::unique_ptr t_tcpClientCounts; - inline MT_t* getMT() { return g_multiTasker ? g_multiTasker.get() : nullptr; diff --git a/pdns/recursordist/rec-tcp.cc b/pdns/recursordist/rec-tcp.cc index b968ab12a0..d7cd3685ba 100644 --- a/pdns/recursordist/rec-tcp.cc +++ b/pdns/recursordist/rec-tcp.cc @@ -68,7 +68,8 @@ bool g_anyToTcp; uint16_t TCPConnection::s_maxInFlight; -thread_local std::unique_ptr t_tcpClientCounts; +using tcpClientCounts_t = map; +static thread_local std::unique_ptr t_tcpClientCounts = std::make_unique(); static void handleRunningTCPQuestion(int fileDesc, FDMultiplexer::funcparam_t& var);