From 789e2755f75dbd2b297b3588404f283568cd8eec Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sat, 12 Mar 2016 13:44:55 +0000 Subject: [PATCH] rpc: do not return bans if they're effectively spent The blocked ip list will still hold them till next time a connection attempt is made with that IP, so the effective length of the ban may be negative. --- src/rpc/core_rpc_server.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/rpc/core_rpc_server.cpp b/src/rpc/core_rpc_server.cpp index 3ce4e600..d9419b2b 100644 --- a/src/rpc/core_rpc_server.cpp +++ b/src/rpc/core_rpc_server.cpp @@ -950,13 +950,16 @@ namespace cryptonote return false; } + auto now = time(nullptr); std::map blocked_ips = m_p2p.get_blocked_ips(); for (std::map::const_iterator i = blocked_ips.begin(); i != blocked_ips.end(); ++i) { - COMMAND_RPC_GETBANS::ban b; - b.ip = i->first; - b.seconds = i->second; - res.bans.push_back(b); + if (i->second > now) { + COMMAND_RPC_GETBANS::ban b; + b.ip = i->first; + b.seconds = i->second - now; + res.bans.push_back(b); + } } res.status = CORE_RPC_STATUS_OK;