From c4e82b854cdd3702d20a6afc49ef26bda9d2ba24 Mon Sep 17 00:00:00 2001 From: Antoine Poinsot Date: Fri, 25 Oct 2024 15:07:24 -0400 Subject: [PATCH] mapport: make 'enabled' and 'current' bool Since there is only a single protocol now, clarify the code by changing the protocol enum for a bool for both variables. --- src/mapport.cpp | 40 ++++++++++++---------------------------- src/mapport.h | 6 ------ 2 files changed, 12 insertions(+), 34 deletions(-) diff --git a/src/mapport.cpp b/src/mapport.cpp index b7aadad6b4..96aa1020dd 100644 --- a/src/mapport.cpp +++ b/src/mapport.cpp @@ -25,8 +25,8 @@ static CThreadInterrupt g_mapport_interrupt; static std::thread g_mapport_thread; -static std::atomic_uint g_mapport_enabled_protos{MapPortProtoFlag::NONE}; -static std::atomic g_mapport_current_proto{MapPortProtoFlag::NONE}; +static std::atomic_bool g_mapport_enabled{false}; +static std::atomic_bool g_mapport_current{false}; using namespace std::chrono_literals; static constexpr auto PORT_MAPPING_REANNOUNCE_PERIOD{20min}; @@ -129,14 +129,14 @@ static void ThreadMapPort() do { ok = false; - if (g_mapport_enabled_protos & MapPortProtoFlag::PCP) { - g_mapport_current_proto = MapPortProtoFlag::PCP; + if (g_mapport_enabled) { + g_mapport_current = true; ok = ProcessPCP(); if (ok) continue; } - g_mapport_current_proto = MapPortProtoFlag::NONE; - if (g_mapport_enabled_protos == MapPortProtoFlag::NONE) { + g_mapport_current = false; + if (!g_mapport_enabled) { return; } @@ -153,44 +153,28 @@ void StartThreadMapPort() static void DispatchMapPort() { - if (g_mapport_current_proto == MapPortProtoFlag::NONE && g_mapport_enabled_protos == MapPortProtoFlag::NONE) { - return; - } - - if (g_mapport_current_proto == MapPortProtoFlag::NONE && g_mapport_enabled_protos != MapPortProtoFlag::NONE) { + if (!g_mapport_current && g_mapport_enabled) { StartThreadMapPort(); - return; - } - - if (g_mapport_current_proto != MapPortProtoFlag::NONE && g_mapport_enabled_protos == MapPortProtoFlag::NONE) { + } else if (g_mapport_current && !g_mapport_enabled) { InterruptMapPort(); StopMapPort(); - return; - } - - if (g_mapport_enabled_protos & g_mapport_current_proto) { - return; } } -static void MapPortProtoSetEnabled(MapPortProtoFlag proto, bool enabled) +static void MapPortProtoSetEnabled(bool enabled) { - if (enabled) { - g_mapport_enabled_protos |= proto; - } else { - g_mapport_enabled_protos &= ~proto; - } + g_mapport_enabled = enabled; } void StartMapPort(bool use_pcp) { - MapPortProtoSetEnabled(MapPortProtoFlag::PCP, use_pcp); + MapPortProtoSetEnabled(use_pcp); DispatchMapPort(); } void InterruptMapPort() { - g_mapport_enabled_protos = MapPortProtoFlag::NONE; + g_mapport_enabled = false; if (g_mapport_thread.joinable()) { g_mapport_interrupt(); } diff --git a/src/mapport.h b/src/mapport.h index 8e33ede32f..aaf15051e7 100644 --- a/src/mapport.h +++ b/src/mapport.h @@ -7,12 +7,6 @@ static constexpr bool DEFAULT_NATPMP = false; -enum MapPortProtoFlag : unsigned int { - NONE = 0x00, - // 0x01 was for UPnP, for which we dropped support. - PCP = 0x02, // PCP with NAT-PMP fallback. -}; - void StartMapPort(bool use_pcp); void InterruptMapPort(); void StopMapPort();