Skip to content

Commit 2b65526

Browse files
committed
merge bitcoin#21167: make CNode::m_inbound_onion public, initialize explicitly
1 parent a8cfd70 commit 2b65526

File tree

4 files changed

+24
-26
lines changed

4 files changed

+24
-26
lines changed

src/net.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,7 @@ CNode* CConnman::ConnectNode(CAddress addrConnect, const char *pszDest, bool fCo
530530
if (!addr_bind.IsValid()) {
531531
addr_bind = GetBindAddress(sock->Get());
532532
}
533-
CNode* pnode = new CNode(id, nLocalServices, sock->Release(), addrConnect, CalculateKeyedNetGroup(addrConnect), nonce, addr_bind, pszDest ? pszDest : "", conn_type);
533+
CNode* pnode = new CNode(id, nLocalServices, sock->Release(), addrConnect, CalculateKeyedNetGroup(addrConnect), nonce, addr_bind, pszDest ? pszDest : "", conn_type, /* inbound_onion */ false);
534534
pnode->AddRef();
535535
statsClient.inc("peers.connect", 1.0f);
536536

@@ -4016,14 +4016,14 @@ unsigned int CConnman::GetReceiveFloodSize() const { return nReceiveFloodSize; }
40164016

40174017
CNode::CNode(NodeId idIn, ServiceFlags nLocalServicesIn, SOCKET hSocketIn, const CAddress& addrIn, uint64_t nKeyedNetGroupIn, uint64_t nLocalHostNonceIn, const CAddress& addrBindIn, const std::string& addrNameIn, ConnectionType conn_type_in, bool inbound_onion)
40184018
: nTimeConnected(GetTimeSeconds()),
4019-
addr(addrIn),
4020-
addrBind(addrBindIn),
4021-
nKeyedNetGroup(nKeyedNetGroupIn),
4022-
id(idIn),
4023-
nLocalHostNonce(nLocalHostNonceIn),
4024-
m_conn_type(conn_type_in),
4025-
nLocalServices(nLocalServicesIn),
4026-
m_inbound_onion(inbound_onion)
4019+
addr(addrIn),
4020+
addrBind(addrBindIn),
4021+
m_inbound_onion(inbound_onion),
4022+
nKeyedNetGroup(nKeyedNetGroupIn),
4023+
id(idIn),
4024+
nLocalHostNonce(nLocalHostNonceIn),
4025+
m_conn_type(conn_type_in),
4026+
nLocalServices(nLocalServicesIn)
40274027
{
40284028
if (inbound_onion) assert(conn_type_in == ConnectionType::INBOUND);
40294029
hSocket = hSocketIn;

src/net.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,8 @@ class CNode
471471
const CAddress addr;
472472
// Bind address of our side of the connection
473473
const CAddress addrBind;
474+
//! Whether this peer is an inbound onion, i.e. connected via our Tor onion service.
475+
const bool m_inbound_onion;
474476
std::atomic<int> nNumWarningsSkipped{0};
475477
std::atomic<int> nVersion{0};
476478
/**
@@ -621,7 +623,7 @@ class CNode
621623

622624
bool IsBlockRelayOnly() const;
623625

624-
CNode(NodeId id, ServiceFlags nLocalServicesIn, SOCKET hSocketIn, const CAddress &addrIn, uint64_t nKeyedNetGroupIn, uint64_t nLocalHostNonceIn, const CAddress &addrBindIn, const std::string &addrNameIn, ConnectionType conn_type_in, bool inbound_onion = false);
626+
CNode(NodeId id, ServiceFlags nLocalServicesIn, SOCKET hSocketIn, const CAddress &addrIn, uint64_t nKeyedNetGroupIn, uint64_t nLocalHostNonceIn, const CAddress &addrBindIn, const std::string &addrNameIn, ConnectionType conn_type_in, bool inbound_onion);
625627
~CNode();
626628
CNode(const CNode&) = delete;
627629
CNode& operator=(const CNode&) = delete;
@@ -698,8 +700,6 @@ class CNode
698700
m_min_ping_time = std::min(m_min_ping_time.load(), ping_time);
699701
}
700702

701-
/** Whether this peer is an inbound onion, e.g. connected via our Tor onion service. */
702-
bool IsInboundOnion() const { return m_inbound_onion; }
703703
std::string GetLogString() const;
704704

705705
bool CanRelay() const { return !m_masternode_connection || m_masternode_iqr_connection; }
@@ -776,9 +776,6 @@ class CNode
776776
CService addrLocal GUARDED_BY(cs_addrLocal);
777777
mutable RecursiveMutex cs_addrLocal;
778778

779-
//! Whether this peer is an inbound onion, e.g. connected via our Tor onion service.
780-
const bool m_inbound_onion{false};
781-
782779
// Challenge sent in VERSION to be answered with MNAUTH (only happens between MNs)
783780
mutable Mutex cs_mnauth;
784781
uint256 sentMNAuthChallenge GUARDED_BY(cs_mnauth);

src/test/denialofservice_tests.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
7474

7575
// Mock an outbound peer
7676
CAddress addr1(ip(0xa0b0c001), NODE_NONE);
77-
CNode dummyNode1(id++, ServiceFlags(NODE_NETWORK), INVALID_SOCKET, addr1, 0, 0, CAddress(), "", ConnectionType::OUTBOUND_FULL_RELAY);
77+
CNode dummyNode1(id++, ServiceFlags(NODE_NETWORK), INVALID_SOCKET, addr1, /* nKeyedNetGroupIn */ 0, /* nLocalHostNonceIn */ 0, CAddress(), /* pszDest */ "", ConnectionType::OUTBOUND_FULL_RELAY, /* inbound_onion */ false);
7878
dummyNode1.SetCommonVersion(PROTOCOL_VERSION);
7979

8080
peerLogic->InitializeNode(&dummyNode1);
@@ -124,7 +124,7 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
124124
static void AddRandomOutboundPeer(std::vector<CNode*>& vNodes, PeerManager& peerLogic, ConnmanTestMsg& connman)
125125
{
126126
CAddress addr(ip(g_insecure_rand_ctx.randbits(32)), NODE_NONE);
127-
vNodes.emplace_back(new CNode(id++, ServiceFlags(NODE_NETWORK), INVALID_SOCKET, addr, 0, 0, CAddress(), "", ConnectionType::OUTBOUND_FULL_RELAY));
127+
vNodes.emplace_back(new CNode(id++, ServiceFlags(NODE_NETWORK), INVALID_SOCKET, addr, /* nKeyedNetGroupIn */ 0, /* nLocalHostNonceIn */ 0, CAddress(), /* pszDest */ "", ConnectionType::OUTBOUND_FULL_RELAY, /* inbound_onion */ false));
128128
CNode &node = *vNodes.back();
129129
node.SetCommonVersion(PROTOCOL_VERSION);
130130

@@ -220,7 +220,7 @@ BOOST_AUTO_TEST_CASE(peer_discouragement)
220220

221221
banman->ClearBanned();
222222
CAddress addr1(ip(0xa0b0c001), NODE_NONE);
223-
CNode dummyNode1(id++, NODE_NETWORK, INVALID_SOCKET, addr1, 0, 0, CAddress(), "", ConnectionType::INBOUND);
223+
CNode dummyNode1(id++, NODE_NETWORK, INVALID_SOCKET, addr1, /* nKeyedNetGroupIn */ 0, /* nLocalHostNonceIn */ 0, CAddress(), /* pszDest */ "", ConnectionType::INBOUND, /* inbound_onion */ false);
224224
dummyNode1.SetCommonVersion(PROTOCOL_VERSION);
225225
peerLogic->InitializeNode(&dummyNode1);
226226
dummyNode1.fSuccessfullyConnected = true;
@@ -233,7 +233,7 @@ BOOST_AUTO_TEST_CASE(peer_discouragement)
233233
BOOST_CHECK(!banman->IsDiscouraged(ip(0xa0b0c001|0x0000ff00))); // Different IP, not discouraged
234234

235235
CAddress addr2(ip(0xa0b0c002), NODE_NONE);
236-
CNode dummyNode2(id++, NODE_NETWORK, INVALID_SOCKET, addr2, 1, 1, CAddress(), "", ConnectionType::INBOUND);
236+
CNode dummyNode2(id++, NODE_NETWORK, INVALID_SOCKET, addr2, /* nKeyedNetGroupIn */ 1, /* nLocalHostNonceIn */ 1, CAddress(), /* pszDest */ "", ConnectionType::INBOUND, /* inbound_onion */ false);
237237
dummyNode2.SetCommonVersion(PROTOCOL_VERSION);
238238
peerLogic->InitializeNode(&dummyNode2);
239239
dummyNode2.fSuccessfullyConnected = true;
@@ -271,7 +271,7 @@ BOOST_AUTO_TEST_CASE(DoS_bantime)
271271
SetMockTime(nStartTime); // Overrides future calls to GetTime()
272272

273273
CAddress addr(ip(0xa0b0c001), NODE_NONE);
274-
CNode dummyNode(id++, NODE_NETWORK, INVALID_SOCKET, addr, 4, 4, CAddress(), "", ConnectionType::INBOUND);
274+
CNode dummyNode(id++, NODE_NETWORK, INVALID_SOCKET, addr, /* nKeyedNetGroupIn */ 4, /* nLocalHostNonceIn */ 4, CAddress(), /* pszDest */ "", ConnectionType::INBOUND, /* inbound_onion */ false);
275275
dummyNode.SetCommonVersion(PROTOCOL_VERSION);
276276
peerLogic->InitializeNode(&dummyNode);
277277
dummyNode.fSuccessfullyConnected = true;

src/test/net_tests.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -194,14 +194,15 @@ BOOST_AUTO_TEST_CASE(cnode_simple_test)
194194
id++, NODE_NETWORK, hSocket, addr,
195195
/* nKeyedNetGroupIn = */ 0,
196196
/* nLocalHostNonceIn = */ 0,
197-
CAddress(), pszDest, ConnectionType::OUTBOUND_FULL_RELAY);
197+
CAddress(), pszDest, ConnectionType::OUTBOUND_FULL_RELAY,
198+
/* inbound_onion = */ false);
198199
BOOST_CHECK(pnode1->IsFullOutboundConn() == true);
199200
BOOST_CHECK(pnode1->IsManualConn() == false);
200201
BOOST_CHECK(pnode1->IsBlockOnlyConn() == false);
201202
BOOST_CHECK(pnode1->IsFeelerConn() == false);
202203
BOOST_CHECK(pnode1->IsAddrFetchConn() == false);
203204
BOOST_CHECK(pnode1->IsInboundConn() == false);
204-
BOOST_CHECK(pnode1->IsInboundOnion() == false);
205+
BOOST_CHECK(pnode1->m_inbound_onion == false);
205206
BOOST_CHECK_EQUAL(pnode1->ConnectedThroughNetwork(), Network::NET_IPV4);
206207

207208
std::unique_ptr<CNode> pnode2 = std::make_unique<CNode>(
@@ -216,7 +217,7 @@ BOOST_AUTO_TEST_CASE(cnode_simple_test)
216217
BOOST_CHECK(pnode2->IsFeelerConn() == false);
217218
BOOST_CHECK(pnode2->IsAddrFetchConn() == false);
218219
BOOST_CHECK(pnode2->IsInboundConn() == true);
219-
BOOST_CHECK(pnode2->IsInboundOnion() == false);
220+
BOOST_CHECK(pnode2->m_inbound_onion == false);
220221
BOOST_CHECK_EQUAL(pnode2->ConnectedThroughNetwork(), Network::NET_IPV4);
221222

222223
std::unique_ptr<CNode> pnode3 = std::make_unique<CNode>(
@@ -231,7 +232,7 @@ BOOST_AUTO_TEST_CASE(cnode_simple_test)
231232
BOOST_CHECK(pnode3->IsFeelerConn() == false);
232233
BOOST_CHECK(pnode3->IsAddrFetchConn() == false);
233234
BOOST_CHECK(pnode3->IsInboundConn() == false);
234-
BOOST_CHECK(pnode3->IsInboundOnion() == false);
235+
BOOST_CHECK(pnode3->m_inbound_onion == false);
235236
BOOST_CHECK_EQUAL(pnode3->ConnectedThroughNetwork(), Network::NET_IPV4);
236237

237238
std::unique_ptr<CNode> pnode4 = std::make_unique<CNode>(
@@ -246,7 +247,7 @@ BOOST_AUTO_TEST_CASE(cnode_simple_test)
246247
BOOST_CHECK(pnode4->IsFeelerConn() == false);
247248
BOOST_CHECK(pnode4->IsAddrFetchConn() == false);
248249
BOOST_CHECK(pnode4->IsInboundConn() == true);
249-
BOOST_CHECK(pnode4->IsInboundOnion() == true);
250+
BOOST_CHECK(pnode4->m_inbound_onion == true);
250251
BOOST_CHECK_EQUAL(pnode4->ConnectedThroughNetwork(), Network::NET_ONION);
251252
}
252253

@@ -740,7 +741,7 @@ BOOST_AUTO_TEST_CASE(ipv4_peer_with_ipv6_addrMe_test)
740741
in_addr ipv4AddrPeer;
741742
ipv4AddrPeer.s_addr = 0xa0b0c001;
742743
CAddress addr = CAddress(CService(ipv4AddrPeer, 7777), NODE_NETWORK);
743-
std::unique_ptr<CNode> pnode = std::make_unique<CNode>(0, NODE_NETWORK, INVALID_SOCKET, addr, 0, 0, CAddress{}, std::string{}, ConnectionType::OUTBOUND_FULL_RELAY);
744+
std::unique_ptr<CNode> pnode = std::make_unique<CNode>(0, NODE_NETWORK, INVALID_SOCKET, addr, /* nKeyedNetGroupIn */ 0, /* nLocalHostNonceIn */ 0, CAddress{}, /* pszDest */ std::string{}, ConnectionType::OUTBOUND_FULL_RELAY, /* inbound_onion */ false);
744745
pnode->fSuccessfullyConnected.store(true);
745746

746747
// the peer claims to be reaching us via IPv6

0 commit comments

Comments
 (0)