From 7ab3c22114e8c1ef03adfb9b2ef6aaf0b27f324d Mon Sep 17 00:00:00 2001 From: SChernykh Date: Wed, 25 Aug 2021 11:14:23 +0200 Subject: [PATCH] Give only 5 seconds for new connections to complete handshake This is to detect random port scans/non-p2pool connections quickly --- src/p2p_server.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/p2p_server.cpp b/src/p2p_server.cpp index 8dbc229..bf17ef3 100644 --- a/src/p2p_server.cpp +++ b/src/p2p_server.cpp @@ -165,7 +165,9 @@ void P2PServer::update_peer_connections() connected_clients.reserve(m_numConnections); for (P2PClient* client = static_cast(m_connectedClientsList->m_next); client != m_connectedClientsList; client = static_cast(client->m_next)) { connected_clients.emplace_back(client->m_addr); - if (cur_time > client->m_lastAlive + 5 * 60) { + + const int timeout = client->m_handshakeComplete ? 300 : 5; + if (cur_time >= client->m_lastAlive + timeout) { const uint64_t idle_time = static_cast(cur_time - client->m_lastAlive); LOGWARN(5, "peer " << static_cast(client->m_addrString) << " has been idle for " << idle_time << " seconds, disconnecting"); client->close();