@@ -558,9 +558,18 @@ void CNode::CloseSocketDisconnect()
558
558
m_i2p_sam_session.reset ();
559
559
}
560
560
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);
564
573
}
565
574
}
566
575
@@ -1726,14 +1735,7 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
1726
1735
{
1727
1736
int nInbound = 0 ;
1728
1737
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);
1737
1739
1738
1740
{
1739
1741
LOCK (m_nodes_mutex);
0 commit comments