From fca17931bb72f6c95d0e8007b95a091bbbae2e2e Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Fri, 7 Mar 2025 13:16:42 +0100 Subject: [PATCH] rec: make sure t_tcpClientCounts is always initialized And while there make it file-local. --- pdns/recursordist/rec-main.cc | 1 - pdns/recursordist/rec-main.hh | 3 --- pdns/recursordist/rec-tcp.cc | 3 ++- 3 files changed, 2 insertions(+), 5 deletions(-) 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); -- 2.47.2