aboutsummaryrefslogtreecommitdiff
path: root/src/p2p
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2016-10-02 17:39:21 +0100
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2016-10-02 19:23:35 +0100
commite57379a819ebafb0871ac591611a2f8f2085be34 (patch)
treeb772b43a41f8599b82ff871d88cb57715ecc7ab0 /src/p2p
parentMerge pull request #1124 (diff)
downloadmonero-e57379a819ebafb0871ac591611a2f8f2085be34.tar.xz
p2p: drop any existing connection to a banned IP
Diffstat (limited to 'src/p2p')
-rw-r--r--src/p2p/net_node.inl12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
index 9c1d8629d..04d73ba95 100644
--- a/src/p2p/net_node.inl
+++ b/src/p2p/net_node.inl
@@ -200,6 +200,18 @@ namespace nodetool
{
CRITICAL_REGION_LOCAL(m_blocked_ips_lock);
m_blocked_ips[addr] = time(nullptr) + seconds;
+
+ // drop any connection to that IP
+ while (!m_net_server.get_config_object().foreach_connection([&](const p2p_connection_context& cntxt)
+ {
+ if (cntxt.m_remote_ip == addr)
+ {
+ drop_connection(cntxt);
+ return false;
+ }
+ return true;
+ }));
+
LOG_PRINT_CYAN("IP " << epee::string_tools::get_ip_string_from_int32(addr) << " blocked.", LOG_LEVEL_0);
return true;
}