From b20db0a117c86fd1b88b8862b0907526dab85ffe Mon Sep 17 00:00:00 2001 From: SChernykh Date: Wed, 17 May 2023 11:13:25 +0200 Subject: [PATCH] P2PServer: always send peer list request to new peers --- src/p2p_server.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/p2p_server.cpp b/src/p2p_server.cpp index 2d84ef9..9faffde 100644 --- a/src/p2p_server.cpp +++ b/src/p2p_server.cpp @@ -1987,15 +1987,19 @@ bool P2PServer::P2PClient::on_block_request(const uint8_t* buf) bool P2PServer::P2PClient::on_block_response(const uint8_t* buf, uint32_t size, const hash& expected_id) { + P2PServer* server = static_cast(m_owner); + const uint64_t cur_time = seconds_since_epoch(); + if (!size) { LOGINFO(5, "peer " << log::Gray() << static_cast(m_addrString) << log::NoColor() << " sent an empty block response"); + if (cur_time >= m_nextOutgoingPeerListRequest) { + server->send_peer_list_request(this, cur_time); + } return true; } const uint64_t received_timestamp = microseconds_since_epoch(); - P2PServer* server = static_cast(m_owner); - MutexLock lock(server->m_blockLock); const int result = server->deserialize_block(buf, size, false, received_timestamp); @@ -2016,7 +2020,6 @@ bool P2PServer::P2PClient::on_block_response(const uint8_t* buf, uint32_t size, return false; } - const uint64_t cur_time = seconds_since_epoch(); if (cur_time >= m_nextOutgoingPeerListRequest) { server->send_peer_list_request(this, cur_time); }