@@ -558,9 +558,18 @@ void CNode::CloseSocketDisconnect()
558558 m_i2p_sam_session.reset ();
559559}
560560
561- void CConnman::AddWhitelistPermissionFlags (NetPermissionFlags& flags, const CNetAddr &addr) const {
562- for (const auto & subnet : vWhitelistedRange) {
563- if (subnet.m_subnet .Match (addr)) NetPermissions::AddFlag (flags, subnet.m_flags );
561+ void CConnman::AddWhitelistPermissionFlags (NetPermissionFlags& flags, const CNetAddr &addr, const std::vector<NetWhitelistPermissions>& ranges) const {
562+ for (const auto & subnet : ranges) {
563+ if (subnet.m_subnet .Match (addr)) {
564+ NetPermissions::AddFlag (flags, subnet.m_flags );
565+ }
566+ }
567+ if (NetPermissions::HasFlag (flags, NetPermissionFlags::Implicit)) {
568+ NetPermissions::ClearFlag (flags, NetPermissionFlags::Implicit);
569+ if (whitelist_forcerelay) NetPermissions::AddFlag (flags, NetPermissionFlags::ForceRelay);
570+ if (whitelist_relay) NetPermissions::AddFlag (flags, NetPermissionFlags::Relay);
571+ NetPermissions::AddFlag (flags, NetPermissionFlags::Mempool);
572+ NetPermissions::AddFlag (flags, NetPermissionFlags::NoBan);
564573 }
565574}
566575
@@ -1726,14 +1735,7 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
17261735{
17271736 int nInbound = 0 ;
17281737
1729- AddWhitelistPermissionFlags (permission_flags, addr);
1730- if (NetPermissions::HasFlag (permission_flags, NetPermissionFlags::Implicit)) {
1731- NetPermissions::ClearFlag (permission_flags, NetPermissionFlags::Implicit);
1732- if (gArgs .GetBoolArg (" -whitelistforcerelay" , DEFAULT_WHITELISTFORCERELAY)) NetPermissions::AddFlag (permission_flags, NetPermissionFlags::ForceRelay);
1733- if (gArgs .GetBoolArg (" -whitelistrelay" , DEFAULT_WHITELISTRELAY)) NetPermissions::AddFlag (permission_flags, NetPermissionFlags::Relay);
1734- NetPermissions::AddFlag (permission_flags, NetPermissionFlags::Mempool);
1735- NetPermissions::AddFlag (permission_flags, NetPermissionFlags::NoBan);
1736- }
1738+ AddWhitelistPermissionFlags (permission_flags, addr, vWhitelistedRange);
17371739
17381740 {
17391741 LOCK (m_nodes_mutex);
0 commit comments