aboutsummaryrefslogtreecommitdiff
path: root/src/net.cpp
diff options
context:
space:
mode:
authorLuke Dashjr <luke-jr+git@utopios.org>2021-07-07 00:54:25 +0000
committerbrunoerg <brunoely.gc@gmail.com>2024-02-28 10:05:56 -0300
commit9133fd69a5cc9a0ab1a06a60d09f1b7e1039018e (patch)
tree96d7b8b6d90f0da7096fb2a7014b0b90501e73a0 /src/net.cpp
parent2863d7dddb62d987b3e1c3b8bfad7083f0f774b2 (diff)
downloadbitcoin-9133fd69a5cc9a0ab1a06a60d09f1b7e1039018e.tar.xz
net: Move `NetPermissionFlags::Implicit` verification to `AddWhitelistPermissionFlags`
Diffstat (limited to 'src/net.cpp')
-rw-r--r--src/net.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/net.cpp b/src/net.cpp
index 7c82f01d75..1241c76e63 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -558,9 +558,18 @@ void CNode::CloseSocketDisconnect()
m_i2p_sam_session.reset();
}
-void CConnman::AddWhitelistPermissionFlags(NetPermissionFlags& flags, const CNetAddr &addr) const {
- for (const auto& subnet : vWhitelistedRange) {
- if (subnet.m_subnet.Match(addr)) NetPermissions::AddFlag(flags, subnet.m_flags);
+void CConnman::AddWhitelistPermissionFlags(NetPermissionFlags& flags, const CNetAddr &addr, const std::vector<NetWhitelistPermissions>& ranges) const {
+ for (const auto& subnet : ranges) {
+ if (subnet.m_subnet.Match(addr)) {
+ NetPermissions::AddFlag(flags, subnet.m_flags);
+ }
+ }
+ if (NetPermissions::HasFlag(flags, NetPermissionFlags::Implicit)) {
+ NetPermissions::ClearFlag(flags, NetPermissionFlags::Implicit);
+ if (whitelist_forcerelay) NetPermissions::AddFlag(flags, NetPermissionFlags::ForceRelay);
+ if (whitelist_relay) NetPermissions::AddFlag(flags, NetPermissionFlags::Relay);
+ NetPermissions::AddFlag(flags, NetPermissionFlags::Mempool);
+ NetPermissions::AddFlag(flags, NetPermissionFlags::NoBan);
}
}
@@ -1726,14 +1735,7 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
{
int nInbound = 0;
- AddWhitelistPermissionFlags(permission_flags, addr);
- if (NetPermissions::HasFlag(permission_flags, NetPermissionFlags::Implicit)) {
- NetPermissions::ClearFlag(permission_flags, NetPermissionFlags::Implicit);
- if (gArgs.GetBoolArg("-whitelistforcerelay", DEFAULT_WHITELISTFORCERELAY)) NetPermissions::AddFlag(permission_flags, NetPermissionFlags::ForceRelay);
- if (gArgs.GetBoolArg("-whitelistrelay", DEFAULT_WHITELISTRELAY)) NetPermissions::AddFlag(permission_flags, NetPermissionFlags::Relay);
- NetPermissions::AddFlag(permission_flags, NetPermissionFlags::Mempool);
- NetPermissions::AddFlag(permission_flags, NetPermissionFlags::NoBan);
- }
+ AddWhitelistPermissionFlags(permission_flags, addr, vWhitelistedRange);
{
LOCK(m_nodes_mutex);