From c2295f55b81325648157adbcdf074ff507548f99 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sat, 2 Jan 2021 18:28:09 +0000 Subject: protocol: handle receiving a block hash we've not added yet --- src/cryptonote_protocol/cryptonote_protocol_handler.inl | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/cryptonote_protocol') diff --git a/src/cryptonote_protocol/cryptonote_protocol_handler.inl b/src/cryptonote_protocol/cryptonote_protocol_handler.inl index 5dbd02da8..77c959645 100644 --- a/src/cryptonote_protocol/cryptonote_protocol_handler.inl +++ b/src/cryptonote_protocol/cryptonote_protocol_handler.inl @@ -2593,11 +2593,16 @@ skip: } int where; const bool have_block = m_core.have_block_unlocked(arg.m_block_ids[i], &where); - if (first && !have_block) + if (first) { - LOG_ERROR_CCONTEXT("First block hash is unknown, dropping connection"); - drop_connection_with_score(context, 5, false); - return 1; + if (!have_block && !m_block_queue.requested(arg.m_block_ids[i]) && !m_block_queue.have(arg.m_block_ids[i])) + { + LOG_ERROR_CCONTEXT("First block hash is unknown, dropping connection"); + drop_connection_with_score(context, 5, false); + return 1; + } + if (!have_block) + expect_unknown = true; } if (!first) { -- cgit v1.2.3