Skip to content

Commit d394156

Browse files
committed
net: make CNode::m_permissionFlags const
1 parent 9dccc33 commit d394156

File tree

7 files changed

+12
-10
lines changed

7 files changed

+12
-10
lines changed

src/net.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,9 +1027,11 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
10271027
addr_bind,
10281028
/*addrNameIn=*/"",
10291029
ConnectionType::INBOUND,
1030-
inbound_onion);
1030+
inbound_onion,
1031+
CNodeOptions{
1032+
.permission_flags = permissionFlags,
1033+
});
10311034
pnode->AddRef();
1032-
pnode->m_permissionFlags = permissionFlags;
10331035
pnode->m_prefer_evict = discouraged;
10341036
m_msgproc->InitializeNode(*pnode, nodeServices);
10351037

@@ -2725,6 +2727,7 @@ CNode::CNode(NodeId idIn,
27252727
CNodeOptions&& node_opts)
27262728
: m_deserializer{std::make_unique<V1TransportDeserializer>(V1TransportDeserializer(Params(), idIn, SER_NETWORK, INIT_PROTO_VERSION))},
27272729
m_serializer{std::make_unique<V1TransportSerializer>(V1TransportSerializer())},
2730+
m_permissionFlags{node_opts.permission_flags},
27282731
m_sock{sock},
27292732
m_connected{GetTime<std::chrono::seconds>()},
27302733
addr{addrIn},

src/net.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ class V1TransportSerializer : public TransportSerializer {
336336

337337
struct CNodeOptions
338338
{
339+
NetPermissionFlags permission_flags = NetPermissionFlags::None;
339340
std::unique_ptr<i2p::sam::Session> i2p_sam_session = nullptr;
340341
};
341342

@@ -349,7 +350,7 @@ class CNode
349350
const std::unique_ptr<TransportDeserializer> m_deserializer; // Used only by SocketHandler thread
350351
const std::unique_ptr<const TransportSerializer> m_serializer;
351352

352-
NetPermissionFlags m_permissionFlags{NetPermissionFlags::None}; // treated as const outside of fuzz tester
353+
const NetPermissionFlags m_permissionFlags;
353354

354355
/**
355356
* Socket used for communication with the node.

src/test/denialofservice_tests.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
6868
/*successfully_connected=*/true,
6969
/*remote_services=*/ServiceFlags(NODE_NETWORK | NODE_WITNESS),
7070
/*local_services=*/ServiceFlags(NODE_NETWORK | NODE_WITNESS),
71-
/*permission_flags=*/NetPermissionFlags::None,
7271
/*version=*/PROTOCOL_VERSION,
7372
/*relay_txs=*/true);
7473
TestOnlyResetTimeData();

src/test/fuzz/util.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,6 @@ void FillNode(FuzzedDataProvider& fuzzed_data_provider, ConnmanTestMsg& connman,
295295
/*successfully_connected=*/fuzzed_data_provider.ConsumeBool(),
296296
/*remote_services=*/ConsumeWeakEnum(fuzzed_data_provider, ALL_SERVICE_FLAGS),
297297
/*local_services=*/ConsumeWeakEnum(fuzzed_data_provider, ALL_SERVICE_FLAGS),
298-
/*permission_flags=*/ConsumeWeakEnum(fuzzed_data_provider, ALL_NET_PERMISSION_FLAGS),
299298
/*version=*/fuzzed_data_provider.ConsumeIntegralInRange<int32_t>(MIN_PEER_PROTO_VERSION, std::numeric_limits<int32_t>::max()),
300299
/*relay_txs=*/fuzzed_data_provider.ConsumeBool());
301300
}

src/test/fuzz/util.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,7 @@ auto ConsumeNode(FuzzedDataProvider& fuzzed_data_provider, const std::optional<N
301301
const std::string addr_name = fuzzed_data_provider.ConsumeRandomLengthString(64);
302302
const ConnectionType conn_type = fuzzed_data_provider.PickValueInArray(ALL_CONNECTION_TYPES);
303303
const bool inbound_onion{conn_type == ConnectionType::INBOUND ? fuzzed_data_provider.ConsumeBool() : false};
304+
NetPermissionFlags permission_flags = ConsumeWeakEnum(fuzzed_data_provider, ALL_NET_PERMISSION_FLAGS);
304305
if constexpr (ReturnUniquePtr) {
305306
return std::make_unique<CNode>(node_id,
306307
sock,
@@ -310,7 +311,8 @@ auto ConsumeNode(FuzzedDataProvider& fuzzed_data_provider, const std::optional<N
310311
addr_bind,
311312
addr_name,
312313
conn_type,
313-
inbound_onion);
314+
inbound_onion,
315+
CNodeOptions{ .permission_flags = permission_flags });
314316
} else {
315317
return CNode{node_id,
316318
sock,
@@ -320,7 +322,8 @@ auto ConsumeNode(FuzzedDataProvider& fuzzed_data_provider, const std::optional<N
320322
addr_bind,
321323
addr_name,
322324
conn_type,
323-
inbound_onion};
325+
inbound_onion,
326+
CNodeOptions{ .permission_flags = permission_flags }};
324327
}
325328
}
326329
inline std::unique_ptr<CNode> ConsumeNodeAsUniquePtr(FuzzedDataProvider& fdp, const std::optional<NodeId>& node_id_in = std::nullopt) { return ConsumeNode<true>(fdp, node_id_in); }

src/test/util/net.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ void ConnmanTestMsg::Handshake(CNode& node,
1717
bool successfully_connected,
1818
ServiceFlags remote_services,
1919
ServiceFlags local_services,
20-
NetPermissionFlags permission_flags,
2120
int32_t version,
2221
bool relay_txs)
2322
{
@@ -56,7 +55,6 @@ void ConnmanTestMsg::Handshake(CNode& node,
5655
assert(peerman.GetNodeStateStats(node.GetId(), statestats));
5756
assert(statestats.m_relay_txs == (relay_txs && !node.IsBlockOnlyConn()));
5857
assert(statestats.their_services == remote_services);
59-
node.m_permissionFlags = permission_flags;
6058
if (successfully_connected) {
6159
CSerializedNetMsg msg_verack{mm.Make(NetMsgType::VERACK)};
6260
(void)connman.ReceiveMsgFrom(node, msg_verack);

src/test/util/net.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ struct ConnmanTestMsg : public CConnman {
4343
bool successfully_connected,
4444
ServiceFlags remote_services,
4545
ServiceFlags local_services,
46-
NetPermissionFlags permission_flags,
4746
int32_t version,
4847
bool relay_txs);
4948

0 commit comments

Comments
 (0)