mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-03 09:56:38 -05:00
net: make CNode::m_permissionFlags const
This commit is contained in:
parent
9dccc3328e
commit
d394156b99
7 changed files with 12 additions and 10 deletions
|
@ -1027,9 +1027,11 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
|
||||||
addr_bind,
|
addr_bind,
|
||||||
/*addrNameIn=*/"",
|
/*addrNameIn=*/"",
|
||||||
ConnectionType::INBOUND,
|
ConnectionType::INBOUND,
|
||||||
inbound_onion);
|
inbound_onion,
|
||||||
|
CNodeOptions{
|
||||||
|
.permission_flags = permissionFlags,
|
||||||
|
});
|
||||||
pnode->AddRef();
|
pnode->AddRef();
|
||||||
pnode->m_permissionFlags = permissionFlags;
|
|
||||||
pnode->m_prefer_evict = discouraged;
|
pnode->m_prefer_evict = discouraged;
|
||||||
m_msgproc->InitializeNode(*pnode, nodeServices);
|
m_msgproc->InitializeNode(*pnode, nodeServices);
|
||||||
|
|
||||||
|
@ -2725,6 +2727,7 @@ CNode::CNode(NodeId idIn,
|
||||||
CNodeOptions&& node_opts)
|
CNodeOptions&& node_opts)
|
||||||
: m_deserializer{std::make_unique<V1TransportDeserializer>(V1TransportDeserializer(Params(), idIn, SER_NETWORK, INIT_PROTO_VERSION))},
|
: m_deserializer{std::make_unique<V1TransportDeserializer>(V1TransportDeserializer(Params(), idIn, SER_NETWORK, INIT_PROTO_VERSION))},
|
||||||
m_serializer{std::make_unique<V1TransportSerializer>(V1TransportSerializer())},
|
m_serializer{std::make_unique<V1TransportSerializer>(V1TransportSerializer())},
|
||||||
|
m_permissionFlags{node_opts.permission_flags},
|
||||||
m_sock{sock},
|
m_sock{sock},
|
||||||
m_connected{GetTime<std::chrono::seconds>()},
|
m_connected{GetTime<std::chrono::seconds>()},
|
||||||
addr{addrIn},
|
addr{addrIn},
|
||||||
|
|
|
@ -336,6 +336,7 @@ public:
|
||||||
|
|
||||||
struct CNodeOptions
|
struct CNodeOptions
|
||||||
{
|
{
|
||||||
|
NetPermissionFlags permission_flags = NetPermissionFlags::None;
|
||||||
std::unique_ptr<i2p::sam::Session> i2p_sam_session = nullptr;
|
std::unique_ptr<i2p::sam::Session> i2p_sam_session = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -349,7 +350,7 @@ public:
|
||||||
const std::unique_ptr<TransportDeserializer> m_deserializer; // Used only by SocketHandler thread
|
const std::unique_ptr<TransportDeserializer> m_deserializer; // Used only by SocketHandler thread
|
||||||
const std::unique_ptr<const TransportSerializer> m_serializer;
|
const std::unique_ptr<const TransportSerializer> m_serializer;
|
||||||
|
|
||||||
NetPermissionFlags m_permissionFlags{NetPermissionFlags::None}; // treated as const outside of fuzz tester
|
const NetPermissionFlags m_permissionFlags;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Socket used for communication with the node.
|
* Socket used for communication with the node.
|
||||||
|
|
|
@ -68,7 +68,6 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
|
||||||
/*successfully_connected=*/true,
|
/*successfully_connected=*/true,
|
||||||
/*remote_services=*/ServiceFlags(NODE_NETWORK | NODE_WITNESS),
|
/*remote_services=*/ServiceFlags(NODE_NETWORK | NODE_WITNESS),
|
||||||
/*local_services=*/ServiceFlags(NODE_NETWORK | NODE_WITNESS),
|
/*local_services=*/ServiceFlags(NODE_NETWORK | NODE_WITNESS),
|
||||||
/*permission_flags=*/NetPermissionFlags::None,
|
|
||||||
/*version=*/PROTOCOL_VERSION,
|
/*version=*/PROTOCOL_VERSION,
|
||||||
/*relay_txs=*/true);
|
/*relay_txs=*/true);
|
||||||
TestOnlyResetTimeData();
|
TestOnlyResetTimeData();
|
||||||
|
|
|
@ -295,7 +295,6 @@ void FillNode(FuzzedDataProvider& fuzzed_data_provider, ConnmanTestMsg& connman,
|
||||||
/*successfully_connected=*/fuzzed_data_provider.ConsumeBool(),
|
/*successfully_connected=*/fuzzed_data_provider.ConsumeBool(),
|
||||||
/*remote_services=*/ConsumeWeakEnum(fuzzed_data_provider, ALL_SERVICE_FLAGS),
|
/*remote_services=*/ConsumeWeakEnum(fuzzed_data_provider, ALL_SERVICE_FLAGS),
|
||||||
/*local_services=*/ConsumeWeakEnum(fuzzed_data_provider, ALL_SERVICE_FLAGS),
|
/*local_services=*/ConsumeWeakEnum(fuzzed_data_provider, ALL_SERVICE_FLAGS),
|
||||||
/*permission_flags=*/ConsumeWeakEnum(fuzzed_data_provider, ALL_NET_PERMISSION_FLAGS),
|
|
||||||
/*version=*/fuzzed_data_provider.ConsumeIntegralInRange<int32_t>(MIN_PEER_PROTO_VERSION, std::numeric_limits<int32_t>::max()),
|
/*version=*/fuzzed_data_provider.ConsumeIntegralInRange<int32_t>(MIN_PEER_PROTO_VERSION, std::numeric_limits<int32_t>::max()),
|
||||||
/*relay_txs=*/fuzzed_data_provider.ConsumeBool());
|
/*relay_txs=*/fuzzed_data_provider.ConsumeBool());
|
||||||
}
|
}
|
||||||
|
|
|
@ -301,6 +301,7 @@ auto ConsumeNode(FuzzedDataProvider& fuzzed_data_provider, const std::optional<N
|
||||||
const std::string addr_name = fuzzed_data_provider.ConsumeRandomLengthString(64);
|
const std::string addr_name = fuzzed_data_provider.ConsumeRandomLengthString(64);
|
||||||
const ConnectionType conn_type = fuzzed_data_provider.PickValueInArray(ALL_CONNECTION_TYPES);
|
const ConnectionType conn_type = fuzzed_data_provider.PickValueInArray(ALL_CONNECTION_TYPES);
|
||||||
const bool inbound_onion{conn_type == ConnectionType::INBOUND ? fuzzed_data_provider.ConsumeBool() : false};
|
const bool inbound_onion{conn_type == ConnectionType::INBOUND ? fuzzed_data_provider.ConsumeBool() : false};
|
||||||
|
NetPermissionFlags permission_flags = ConsumeWeakEnum(fuzzed_data_provider, ALL_NET_PERMISSION_FLAGS);
|
||||||
if constexpr (ReturnUniquePtr) {
|
if constexpr (ReturnUniquePtr) {
|
||||||
return std::make_unique<CNode>(node_id,
|
return std::make_unique<CNode>(node_id,
|
||||||
sock,
|
sock,
|
||||||
|
@ -310,7 +311,8 @@ auto ConsumeNode(FuzzedDataProvider& fuzzed_data_provider, const std::optional<N
|
||||||
addr_bind,
|
addr_bind,
|
||||||
addr_name,
|
addr_name,
|
||||||
conn_type,
|
conn_type,
|
||||||
inbound_onion);
|
inbound_onion,
|
||||||
|
CNodeOptions{ .permission_flags = permission_flags });
|
||||||
} else {
|
} else {
|
||||||
return CNode{node_id,
|
return CNode{node_id,
|
||||||
sock,
|
sock,
|
||||||
|
@ -320,7 +322,8 @@ auto ConsumeNode(FuzzedDataProvider& fuzzed_data_provider, const std::optional<N
|
||||||
addr_bind,
|
addr_bind,
|
||||||
addr_name,
|
addr_name,
|
||||||
conn_type,
|
conn_type,
|
||||||
inbound_onion};
|
inbound_onion,
|
||||||
|
CNodeOptions{ .permission_flags = permission_flags }};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
inline std::unique_ptr<CNode> ConsumeNodeAsUniquePtr(FuzzedDataProvider& fdp, const std::optional<NodeId>& node_id_in = std::nullopt) { return ConsumeNode<true>(fdp, node_id_in); }
|
inline std::unique_ptr<CNode> ConsumeNodeAsUniquePtr(FuzzedDataProvider& fdp, const std::optional<NodeId>& node_id_in = std::nullopt) { return ConsumeNode<true>(fdp, node_id_in); }
|
||||||
|
|
|
@ -17,7 +17,6 @@ void ConnmanTestMsg::Handshake(CNode& node,
|
||||||
bool successfully_connected,
|
bool successfully_connected,
|
||||||
ServiceFlags remote_services,
|
ServiceFlags remote_services,
|
||||||
ServiceFlags local_services,
|
ServiceFlags local_services,
|
||||||
NetPermissionFlags permission_flags,
|
|
||||||
int32_t version,
|
int32_t version,
|
||||||
bool relay_txs)
|
bool relay_txs)
|
||||||
{
|
{
|
||||||
|
@ -56,7 +55,6 @@ void ConnmanTestMsg::Handshake(CNode& node,
|
||||||
assert(peerman.GetNodeStateStats(node.GetId(), statestats));
|
assert(peerman.GetNodeStateStats(node.GetId(), statestats));
|
||||||
assert(statestats.m_relay_txs == (relay_txs && !node.IsBlockOnlyConn()));
|
assert(statestats.m_relay_txs == (relay_txs && !node.IsBlockOnlyConn()));
|
||||||
assert(statestats.their_services == remote_services);
|
assert(statestats.their_services == remote_services);
|
||||||
node.m_permissionFlags = permission_flags;
|
|
||||||
if (successfully_connected) {
|
if (successfully_connected) {
|
||||||
CSerializedNetMsg msg_verack{mm.Make(NetMsgType::VERACK)};
|
CSerializedNetMsg msg_verack{mm.Make(NetMsgType::VERACK)};
|
||||||
(void)connman.ReceiveMsgFrom(node, msg_verack);
|
(void)connman.ReceiveMsgFrom(node, msg_verack);
|
||||||
|
|
|
@ -43,7 +43,6 @@ struct ConnmanTestMsg : public CConnman {
|
||||||
bool successfully_connected,
|
bool successfully_connected,
|
||||||
ServiceFlags remote_services,
|
ServiceFlags remote_services,
|
||||||
ServiceFlags local_services,
|
ServiceFlags local_services,
|
||||||
NetPermissionFlags permission_flags,
|
|
||||||
int32_t version,
|
int32_t version,
|
||||||
bool relay_txs);
|
bool relay_txs);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue