cryptonote_protocol: drop peers we can't download from when syncing

Any peer that's behind us while syncing is useless to us (though
not to them). This ensures that we don't get our peer slots filled
with peers that we can't use. Once we've synced, we can connect
to them and they can then sync off us if they want.
This commit is contained in:
moneromooo-monero 2019-07-04 21:44:43 +00:00
parent ab361df2cd
commit a96c1a46d4
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3

View file

@ -341,6 +341,11 @@ namespace cryptonote
if(m_core.have_block(hshd.top_id)) if(m_core.have_block(hshd.top_id))
{ {
if (target > hshd.current_height)
{
MINFO(context << "peer is not ahead of us and we're syncing, disconnecting");
return false;
}
context.m_state = cryptonote_connection_context::state_normal; context.m_state = cryptonote_connection_context::state_normal;
if(is_inital && target == m_core.get_current_blockchain_height()) if(is_inital && target == m_core.get_current_blockchain_height())
on_connection_synchronized(); on_connection_synchronized();