@@ -556,7 +556,7 @@ CNode* CConnman::ConnectNode(CAddress addrConnect, const char *pszDest, bool fCo
556556 pszDest ? pszDest : " " ,
557557 conn_type,
558558 /* inbound_onion=*/ false ,
559- std::move (i2p_transient_session));
559+ CNodeOptions{ . i2p_sam_session = std::move (i2p_transient_session) } );
560560 pnode->AddRef ();
561561
562562 // We're making a new connection, harvest entropy from the time (and our peer count)
@@ -637,7 +637,7 @@ void CNode::CopyStats(CNodeStats& stats)
637637 X (mapRecvBytesPerMsgType);
638638 X (nRecvBytes);
639639 }
640- X (m_permissionFlags );
640+ X (m_permission_flags );
641641
642642 X (m_last_ping_time);
643643 X (m_min_ping_time);
@@ -936,27 +936,27 @@ void CConnman::AcceptConnection(const ListenSocket& hListenSocket) {
936936
937937 const CAddress addr_bind{MaybeFlipIPv6toCJDNS (GetBindAddress (*sock)), NODE_NONE};
938938
939- NetPermissionFlags permissionFlags = NetPermissionFlags::None;
940- hListenSocket.AddSocketPermissionFlags (permissionFlags );
939+ NetPermissionFlags permission_flags = NetPermissionFlags::None;
940+ hListenSocket.AddSocketPermissionFlags (permission_flags );
941941
942- CreateNodeFromAcceptedSocket (std::move (sock), permissionFlags , addr_bind, addr);
942+ CreateNodeFromAcceptedSocket (std::move (sock), permission_flags , addr_bind, addr);
943943}
944944
945945void CConnman::CreateNodeFromAcceptedSocket (std::unique_ptr<Sock>&& sock,
946- NetPermissionFlags permissionFlags ,
946+ NetPermissionFlags permission_flags ,
947947 const CAddress& addr_bind,
948948 const CAddress& addr)
949949{
950950 int nInbound = 0 ;
951951 int nMaxInbound = nMaxConnections - m_max_outbound;
952952
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);
960960 }
961961
962962 {
@@ -987,15 +987,15 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
987987
988988 // Don't accept connections from banned peers.
989989 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)
991991 {
992992 LogPrint (BCLog::NET, " connection from %s dropped (banned)\n " , addr.ToString ());
993993 return ;
994994 }
995995
996996 // Only accept connections from discouraged peers if our inbound slots aren't (almost) full.
997997 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)
999999 {
10001000 LogPrint (BCLog::NET, " connection from %s dropped (discouraged)\n " , addr.ToString ());
10011001 return ;
@@ -1014,7 +1014,7 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
10141014 uint64_t nonce = GetDeterministicRandomizer (RANDOMIZER_ID_LOCALHOSTNONCE).Write (id).Finalize ();
10151015
10161016 ServiceFlags nodeServices = nLocalServices;
1017- if (NetPermissions::HasFlag (permissionFlags , NetPermissionFlags::BloomFilter)) {
1017+ if (NetPermissions::HasFlag (permission_flags , NetPermissionFlags::BloomFilter)) {
10181018 nodeServices = static_cast <ServiceFlags>(nodeServices | NODE_BLOOM);
10191019 }
10201020
@@ -1027,10 +1027,12 @@ 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 = permission_flags,
1033+ .prefer_evict = discouraged,
1034+ });
10311035 pnode->AddRef ();
1032- pnode->m_permissionFlags = permissionFlags;
1033- pnode->m_prefer_evict = discouraged;
10341036 m_msgproc->InitializeNode (*pnode, nodeServices);
10351037
10361038 LogPrint (BCLog::NET, " connection from %s accepted\n " , addr.ToString ());
@@ -2722,20 +2724,22 @@ CNode::CNode(NodeId idIn,
27222724 const std::string& addrNameIn,
27232725 ConnectionType conn_type_in,
27242726 bool inbound_onion,
2725- std::unique_ptr<i2p::sam::Session> && i2p_sam_session )
2727+ 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_permission_flags{node_opts.permission_flags },
27282731 m_sock{sock},
27292732 m_connected{GetTime<std::chrono::seconds>()},
27302733 addr{addrIn},
27312734 addrBind{addrBindIn},
27322735 m_addr_name{addrNameIn.empty () ? addr.ToStringIPPort () : addrNameIn},
27332736 m_inbound_onion{inbound_onion},
2737+ m_prefer_evict{node_opts.prefer_evict },
27342738 nKeyedNetGroup{nKeyedNetGroupIn},
27352739 id{idIn},
27362740 nLocalHostNonce{nLocalHostNonceIn},
27372741 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 )}
27392743{
27402744 if (inbound_onion) assert (conn_type_in == ConnectionType::INBOUND);
27412745
0 commit comments