Skip to content

Commit c4e82b8

Browse files
committed
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.
1 parent da10e0b commit c4e82b8

File tree

2 files changed

+12
-34
lines changed

2 files changed

+12
-34
lines changed

src/mapport.cpp

Lines changed: 12 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525

2626
static CThreadInterrupt g_mapport_interrupt;
2727
static std::thread g_mapport_thread;
28-
static std::atomic_uint g_mapport_enabled_protos{MapPortProtoFlag::NONE};
29-
static std::atomic<MapPortProtoFlag> g_mapport_current_proto{MapPortProtoFlag::NONE};
28+
static std::atomic_bool g_mapport_enabled{false};
29+
static std::atomic_bool g_mapport_current{false};
3030

3131
using namespace std::chrono_literals;
3232
static constexpr auto PORT_MAPPING_REANNOUNCE_PERIOD{20min};
@@ -129,14 +129,14 @@ static void ThreadMapPort()
129129
do {
130130
ok = false;
131131

132-
if (g_mapport_enabled_protos & MapPortProtoFlag::PCP) {
133-
g_mapport_current_proto = MapPortProtoFlag::PCP;
132+
if (g_mapport_enabled) {
133+
g_mapport_current = true;
134134
ok = ProcessPCP();
135135
if (ok) continue;
136136
}
137137

138-
g_mapport_current_proto = MapPortProtoFlag::NONE;
139-
if (g_mapport_enabled_protos == MapPortProtoFlag::NONE) {
138+
g_mapport_current = false;
139+
if (!g_mapport_enabled) {
140140
return;
141141
}
142142

@@ -153,44 +153,28 @@ void StartThreadMapPort()
153153

154154
static void DispatchMapPort()
155155
{
156-
if (g_mapport_current_proto == MapPortProtoFlag::NONE && g_mapport_enabled_protos == MapPortProtoFlag::NONE) {
157-
return;
158-
}
159-
160-
if (g_mapport_current_proto == MapPortProtoFlag::NONE && g_mapport_enabled_protos != MapPortProtoFlag::NONE) {
156+
if (!g_mapport_current && g_mapport_enabled) {
161157
StartThreadMapPort();
162-
return;
163-
}
164-
165-
if (g_mapport_current_proto != MapPortProtoFlag::NONE && g_mapport_enabled_protos == MapPortProtoFlag::NONE) {
158+
} else if (g_mapport_current && !g_mapport_enabled) {
166159
InterruptMapPort();
167160
StopMapPort();
168-
return;
169-
}
170-
171-
if (g_mapport_enabled_protos & g_mapport_current_proto) {
172-
return;
173161
}
174162
}
175163

176-
static void MapPortProtoSetEnabled(MapPortProtoFlag proto, bool enabled)
164+
static void MapPortProtoSetEnabled(bool enabled)
177165
{
178-
if (enabled) {
179-
g_mapport_enabled_protos |= proto;
180-
} else {
181-
g_mapport_enabled_protos &= ~proto;
182-
}
166+
g_mapport_enabled = enabled;
183167
}
184168

185169
void StartMapPort(bool use_pcp)
186170
{
187-
MapPortProtoSetEnabled(MapPortProtoFlag::PCP, use_pcp);
171+
MapPortProtoSetEnabled(use_pcp);
188172
DispatchMapPort();
189173
}
190174

191175
void InterruptMapPort()
192176
{
193-
g_mapport_enabled_protos = MapPortProtoFlag::NONE;
177+
g_mapport_enabled = false;
194178
if (g_mapport_thread.joinable()) {
195179
g_mapport_interrupt();
196180
}

src/mapport.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,6 @@
77

88
static constexpr bool DEFAULT_NATPMP = false;
99

10-
enum MapPortProtoFlag : unsigned int {
11-
NONE = 0x00,
12-
// 0x01 was for UPnP, for which we dropped support.
13-
PCP = 0x02, // PCP with NAT-PMP fallback.
14-
};
15-
1610
void StartMapPort(bool use_pcp);
1711
void InterruptMapPort();
1812
void StopMapPort();

0 commit comments

Comments
 (0)