Skip to content

Commit c25e0e0

Browse files
net, refactor: move calculations for connection type limits into connman
Currently the logic is fragmented between init and connman. Encapsulating this logic within connman allows for less mental overhead and easier reuse in tests. Co-authored-by: Martin Zumsande <[email protected]>
1 parent 97f756b commit c25e0e0

File tree

3 files changed

+5
-19
lines changed

3 files changed

+5
-19
lines changed

src/init.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1749,10 +1749,6 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
17491749
CConnman::Options connOptions;
17501750
connOptions.nLocalServices = nLocalServices;
17511751
connOptions.nMaxConnections = nMaxConnections;
1752-
connOptions.m_max_outbound_full_relay = std::min(MAX_OUTBOUND_FULL_RELAY_CONNECTIONS, connOptions.nMaxConnections);
1753-
connOptions.m_max_outbound_block_relay = std::min(MAX_BLOCK_RELAY_ONLY_CONNECTIONS, connOptions.nMaxConnections-connOptions.m_max_outbound_full_relay);
1754-
connOptions.nMaxAddnode = MAX_ADDNODE_CONNECTIONS;
1755-
connOptions.nMaxFeeler = MAX_FEELER_CONNECTIONS;
17561752
connOptions.uiInterface = &uiInterface;
17571753
connOptions.m_banman = node.banman.get();
17581754
connOptions.m_msgproc = node.peerman.get();

src/net.h

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,10 +1058,6 @@ class CConnman
10581058
{
10591059
ServiceFlags nLocalServices = NODE_NONE;
10601060
int nMaxConnections = 0;
1061-
int m_max_outbound_full_relay = 0;
1062-
int m_max_outbound_block_relay = 0;
1063-
int nMaxAddnode = 0;
1064-
int nMaxFeeler = 0;
10651061
CClientUIInterface* uiInterface = nullptr;
10661062
NetEventsInterface* m_msgproc = nullptr;
10671063
BanMan* m_banman = nullptr;
@@ -1089,12 +1085,10 @@ class CConnman
10891085

10901086
nLocalServices = connOptions.nLocalServices;
10911087
nMaxConnections = connOptions.nMaxConnections;
1092-
m_max_outbound_full_relay = std::min(connOptions.m_max_outbound_full_relay, connOptions.nMaxConnections);
1093-
m_max_outbound_block_relay = connOptions.m_max_outbound_block_relay;
1094-
m_use_addrman_outgoing = connOptions.m_use_addrman_outgoing;
1095-
nMaxAddnode = connOptions.nMaxAddnode;
1096-
nMaxFeeler = connOptions.nMaxFeeler;
1088+
m_max_outbound_full_relay = std::min(MAX_OUTBOUND_FULL_RELAY_CONNECTIONS, nMaxConnections);
1089+
m_max_outbound_block_relay = std::min(MAX_BLOCK_RELAY_ONLY_CONNECTIONS, nMaxConnections - m_max_outbound_full_relay);
10971090
m_max_outbound = m_max_outbound_full_relay + m_max_outbound_block_relay + nMaxFeeler;
1091+
m_use_addrman_outgoing = connOptions.m_use_addrman_outgoing;
10981092
m_client_interface = connOptions.uiInterface;
10991093
m_banman = connOptions.m_banman;
11001094
m_msgproc = connOptions.m_msgproc;
@@ -1488,8 +1482,8 @@ class CConnman
14881482
// We do not relay tx or addr messages with these peers
14891483
int m_max_outbound_block_relay;
14901484

1491-
int nMaxAddnode;
1492-
int nMaxFeeler;
1485+
int nMaxAddnode{MAX_ADDNODE_CONNECTIONS};
1486+
int nMaxFeeler{MAX_FEELER_CONNECTIONS};
14931487
int m_max_outbound;
14941488
bool m_use_addrman_outgoing;
14951489
CClientUIInterface* m_client_interface;

src/test/denialofservice_tests.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,6 @@ BOOST_AUTO_TEST_CASE(stale_tip_peer_management)
148148
constexpr int max_outbound_full_relay = MAX_OUTBOUND_FULL_RELAY_CONNECTIONS;
149149
CConnman::Options options;
150150
options.nMaxConnections = DEFAULT_MAX_PEER_CONNECTIONS;
151-
options.m_max_outbound_full_relay = max_outbound_full_relay;
152-
options.nMaxFeeler = MAX_FEELER_CONNECTIONS;
153151

154152
const auto time_init{GetTime<std::chrono::seconds>()};
155153
SetMockTime(time_init);
@@ -249,8 +247,6 @@ BOOST_AUTO_TEST_CASE(block_relay_only_eviction)
249247
constexpr int64_t MINIMUM_CONNECT_TIME{30};
250248
CConnman::Options options;
251249
options.nMaxConnections = DEFAULT_MAX_PEER_CONNECTIONS;
252-
options.m_max_outbound_full_relay = MAX_OUTBOUND_FULL_RELAY_CONNECTIONS;
253-
options.m_max_outbound_block_relay = max_outbound_block_relay;
254250

255251
connman->Init(options);
256252
std::vector<CNode*> vNodes;

0 commit comments

Comments
 (0)