@@ -556,7 +556,7 @@ CNode* CConnman::ConnectNode(CAddress addrConnect, const char *pszDest, bool fCo
556
556
pszDest ? pszDest : " " ,
557
557
conn_type,
558
558
/* inbound_onion=*/ false ,
559
- std::move (i2p_transient_session));
559
+ CNodeOptions{ . i2p_sam_session = std::move (i2p_transient_session) } );
560
560
pnode->AddRef ();
561
561
562
562
// We're making a new connection, harvest entropy from the time (and our peer count)
@@ -637,7 +637,7 @@ void CNode::CopyStats(CNodeStats& stats)
637
637
X (mapRecvBytesPerMsgType);
638
638
X (nRecvBytes);
639
639
}
640
- X (m_permissionFlags );
640
+ X (m_permission_flags );
641
641
642
642
X (m_last_ping_time);
643
643
X (m_min_ping_time);
@@ -936,27 +936,27 @@ void CConnman::AcceptConnection(const ListenSocket& hListenSocket) {
936
936
937
937
const CAddress addr_bind{MaybeFlipIPv6toCJDNS (GetBindAddress (*sock)), NODE_NONE};
938
938
939
- NetPermissionFlags permissionFlags = NetPermissionFlags::None;
940
- hListenSocket.AddSocketPermissionFlags (permissionFlags );
939
+ NetPermissionFlags permission_flags = NetPermissionFlags::None;
940
+ hListenSocket.AddSocketPermissionFlags (permission_flags );
941
941
942
- CreateNodeFromAcceptedSocket (std::move (sock), permissionFlags , addr_bind, addr);
942
+ CreateNodeFromAcceptedSocket (std::move (sock), permission_flags , addr_bind, addr);
943
943
}
944
944
945
945
void CConnman::CreateNodeFromAcceptedSocket (std::unique_ptr<Sock>&& sock,
946
- NetPermissionFlags permissionFlags ,
946
+ NetPermissionFlags permission_flags ,
947
947
const CAddress& addr_bind,
948
948
const CAddress& addr)
949
949
{
950
950
int nInbound = 0 ;
951
951
int nMaxInbound = nMaxConnections - m_max_outbound;
952
952
953
- AddWhitelistPermissionFlags (permissionFlags , addr);
954
- if (NetPermissions::HasFlag (permissionFlags , NetPermissionFlags::Implicit)) {
955
- NetPermissions::ClearFlag (permissionFlags , NetPermissionFlags::Implicit);
956
- if (gArgs .GetBoolArg (" -whitelistforcerelay" , DEFAULT_WHITELISTFORCERELAY)) NetPermissions::AddFlag (permissionFlags , NetPermissionFlags::ForceRelay);
957
- if (gArgs .GetBoolArg (" -whitelistrelay" , DEFAULT_WHITELISTRELAY)) NetPermissions::AddFlag (permissionFlags , NetPermissionFlags::Relay);
958
- NetPermissions::AddFlag (permissionFlags , NetPermissionFlags::Mempool);
959
- NetPermissions::AddFlag (permissionFlags , NetPermissionFlags::NoBan);
953
+ AddWhitelistPermissionFlags (permission_flags , addr);
954
+ if (NetPermissions::HasFlag (permission_flags , NetPermissionFlags::Implicit)) {
955
+ NetPermissions::ClearFlag (permission_flags , NetPermissionFlags::Implicit);
956
+ if (gArgs .GetBoolArg (" -whitelistforcerelay" , DEFAULT_WHITELISTFORCERELAY)) NetPermissions::AddFlag (permission_flags , NetPermissionFlags::ForceRelay);
957
+ if (gArgs .GetBoolArg (" -whitelistrelay" , DEFAULT_WHITELISTRELAY)) NetPermissions::AddFlag (permission_flags , NetPermissionFlags::Relay);
958
+ NetPermissions::AddFlag (permission_flags , NetPermissionFlags::Mempool);
959
+ NetPermissions::AddFlag (permission_flags , NetPermissionFlags::NoBan);
960
960
}
961
961
962
962
{
@@ -987,15 +987,15 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
987
987
988
988
// Don't accept connections from banned peers.
989
989
bool banned = m_banman && m_banman->IsBanned (addr);
990
- if (!NetPermissions::HasFlag (permissionFlags , NetPermissionFlags::NoBan) && banned)
990
+ if (!NetPermissions::HasFlag (permission_flags , NetPermissionFlags::NoBan) && banned)
991
991
{
992
992
LogPrint (BCLog::NET, " connection from %s dropped (banned)\n " , addr.ToString ());
993
993
return ;
994
994
}
995
995
996
996
// Only accept connections from discouraged peers if our inbound slots aren't (almost) full.
997
997
bool discouraged = m_banman && m_banman->IsDiscouraged (addr);
998
- if (!NetPermissions::HasFlag (permissionFlags , NetPermissionFlags::NoBan) && nInbound + 1 >= nMaxInbound && discouraged)
998
+ if (!NetPermissions::HasFlag (permission_flags , NetPermissionFlags::NoBan) && nInbound + 1 >= nMaxInbound && discouraged)
999
999
{
1000
1000
LogPrint (BCLog::NET, " connection from %s dropped (discouraged)\n " , addr.ToString ());
1001
1001
return ;
@@ -1014,7 +1014,7 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
1014
1014
uint64_t nonce = GetDeterministicRandomizer (RANDOMIZER_ID_LOCALHOSTNONCE).Write (id).Finalize ();
1015
1015
1016
1016
ServiceFlags nodeServices = nLocalServices;
1017
- if (NetPermissions::HasFlag (permissionFlags , NetPermissionFlags::BloomFilter)) {
1017
+ if (NetPermissions::HasFlag (permission_flags , NetPermissionFlags::BloomFilter)) {
1018
1018
nodeServices = static_cast <ServiceFlags>(nodeServices | NODE_BLOOM);
1019
1019
}
1020
1020
@@ -1027,10 +1027,12 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
1027
1027
addr_bind,
1028
1028
/* addrNameIn=*/ " " ,
1029
1029
ConnectionType::INBOUND,
1030
- inbound_onion);
1030
+ inbound_onion,
1031
+ CNodeOptions{
1032
+ .permission_flags = permission_flags,
1033
+ .prefer_evict = discouraged,
1034
+ });
1031
1035
pnode->AddRef ();
1032
- pnode->m_permissionFlags = permissionFlags;
1033
- pnode->m_prefer_evict = discouraged;
1034
1036
m_msgproc->InitializeNode (*pnode, nodeServices);
1035
1037
1036
1038
LogPrint (BCLog::NET, " connection from %s accepted\n " , addr.ToString ());
@@ -2722,20 +2724,22 @@ CNode::CNode(NodeId idIn,
2722
2724
const std::string& addrNameIn,
2723
2725
ConnectionType conn_type_in,
2724
2726
bool inbound_onion,
2725
- std::unique_ptr<i2p::sam::Session> && i2p_sam_session )
2727
+ CNodeOptions && node_opts )
2726
2728
: m_deserializer{std::make_unique<V1TransportDeserializer>(V1TransportDeserializer (Params (), idIn, SER_NETWORK, INIT_PROTO_VERSION))},
2727
2729
m_serializer{std::make_unique<V1TransportSerializer>(V1TransportSerializer ())},
2730
+ m_permission_flags{node_opts.permission_flags },
2728
2731
m_sock{sock},
2729
2732
m_connected{GetTime<std::chrono::seconds>()},
2730
2733
addr{addrIn},
2731
2734
addrBind{addrBindIn},
2732
2735
m_addr_name{addrNameIn.empty () ? addr.ToStringIPPort () : addrNameIn},
2733
2736
m_inbound_onion{inbound_onion},
2737
+ m_prefer_evict{node_opts.prefer_evict },
2734
2738
nKeyedNetGroup{nKeyedNetGroupIn},
2735
2739
id{idIn},
2736
2740
nLocalHostNonce{nLocalHostNonceIn},
2737
2741
m_conn_type{conn_type_in},
2738
- m_i2p_sam_session{std::move (i2p_sam_session)}
2742
+ m_i2p_sam_session{std::move (node_opts. i2p_sam_session )}
2739
2743
{
2740
2744
if (inbound_onion) assert (conn_type_in == ConnectionType::INBOUND);
2741
2745
0 commit comments