mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
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.
This commit is contained in:
parent
da10e0bab4
commit
c4e82b854c
2 changed files with 12 additions and 34 deletions
|
@ -25,8 +25,8 @@
|
||||||
|
|
||||||
static CThreadInterrupt g_mapport_interrupt;
|
static CThreadInterrupt g_mapport_interrupt;
|
||||||
static std::thread g_mapport_thread;
|
static std::thread g_mapport_thread;
|
||||||
static std::atomic_uint g_mapport_enabled_protos{MapPortProtoFlag::NONE};
|
static std::atomic_bool g_mapport_enabled{false};
|
||||||
static std::atomic<MapPortProtoFlag> g_mapport_current_proto{MapPortProtoFlag::NONE};
|
static std::atomic_bool g_mapport_current{false};
|
||||||
|
|
||||||
using namespace std::chrono_literals;
|
using namespace std::chrono_literals;
|
||||||
static constexpr auto PORT_MAPPING_REANNOUNCE_PERIOD{20min};
|
static constexpr auto PORT_MAPPING_REANNOUNCE_PERIOD{20min};
|
||||||
|
@ -129,14 +129,14 @@ static void ThreadMapPort()
|
||||||
do {
|
do {
|
||||||
ok = false;
|
ok = false;
|
||||||
|
|
||||||
if (g_mapport_enabled_protos & MapPortProtoFlag::PCP) {
|
if (g_mapport_enabled) {
|
||||||
g_mapport_current_proto = MapPortProtoFlag::PCP;
|
g_mapport_current = true;
|
||||||
ok = ProcessPCP();
|
ok = ProcessPCP();
|
||||||
if (ok) continue;
|
if (ok) continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_mapport_current_proto = MapPortProtoFlag::NONE;
|
g_mapport_current = false;
|
||||||
if (g_mapport_enabled_protos == MapPortProtoFlag::NONE) {
|
if (!g_mapport_enabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,44 +153,28 @@ void StartThreadMapPort()
|
||||||
|
|
||||||
static void DispatchMapPort()
|
static void DispatchMapPort()
|
||||||
{
|
{
|
||||||
if (g_mapport_current_proto == MapPortProtoFlag::NONE && g_mapport_enabled_protos == MapPortProtoFlag::NONE) {
|
if (!g_mapport_current && g_mapport_enabled) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_mapport_current_proto == MapPortProtoFlag::NONE && g_mapport_enabled_protos != MapPortProtoFlag::NONE) {
|
|
||||||
StartThreadMapPort();
|
StartThreadMapPort();
|
||||||
return;
|
} else if (g_mapport_current && !g_mapport_enabled) {
|
||||||
}
|
|
||||||
|
|
||||||
if (g_mapport_current_proto != MapPortProtoFlag::NONE && g_mapport_enabled_protos == MapPortProtoFlag::NONE) {
|
|
||||||
InterruptMapPort();
|
InterruptMapPort();
|
||||||
StopMapPort();
|
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 = enabled;
|
||||||
g_mapport_enabled_protos |= proto;
|
|
||||||
} else {
|
|
||||||
g_mapport_enabled_protos &= ~proto;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void StartMapPort(bool use_pcp)
|
void StartMapPort(bool use_pcp)
|
||||||
{
|
{
|
||||||
MapPortProtoSetEnabled(MapPortProtoFlag::PCP, use_pcp);
|
MapPortProtoSetEnabled(use_pcp);
|
||||||
DispatchMapPort();
|
DispatchMapPort();
|
||||||
}
|
}
|
||||||
|
|
||||||
void InterruptMapPort()
|
void InterruptMapPort()
|
||||||
{
|
{
|
||||||
g_mapport_enabled_protos = MapPortProtoFlag::NONE;
|
g_mapport_enabled = false;
|
||||||
if (g_mapport_thread.joinable()) {
|
if (g_mapport_thread.joinable()) {
|
||||||
g_mapport_interrupt();
|
g_mapport_interrupt();
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,6 @@
|
||||||
|
|
||||||
static constexpr bool DEFAULT_NATPMP = false;
|
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 StartMapPort(bool use_pcp);
|
||||||
void InterruptMapPort();
|
void InterruptMapPort();
|
||||||
void StopMapPort();
|
void StopMapPort();
|
||||||
|
|
Loading…
Add table
Reference in a new issue