diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2016-10-02 17:39:21 +0100 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2016-10-02 19:23:35 +0100 |
commit | e57379a819ebafb0871ac591611a2f8f2085be34 (patch) | |
tree | b772b43a41f8599b82ff871d88cb57715ecc7ab0 /src/p2p | |
parent | Merge pull request #1124 (diff) | |
download | monero-e57379a819ebafb0871ac591611a2f8f2085be34.tar.xz |
p2p: drop any existing connection to a banned IP
Diffstat (limited to 'src/p2p')
-rw-r--r-- | src/p2p/net_node.inl | 12 |
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; } |