p2p: fix picking peers off an empty gray list

This commit is contained in:
moneromooo-monero 2018-01-18 16:54:52 +00:00
parent 35d5aa36c9
commit ab58b150ef
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3

View file

@ -1062,7 +1062,10 @@ namespace nodetool
max_random_index = std::min<uint64_t>(local_peers_count -1, 20); max_random_index = std::min<uint64_t>(local_peers_count -1, 20);
random_index = get_random_index_with_fixed_probability(max_random_index); random_index = get_random_index_with_fixed_probability(max_random_index);
} else { } else {
random_index = crypto::rand<size_t>() % m_peerlist.get_gray_peers_count(); local_peers_count = m_peerlist.get_gray_peers_count();
if (!local_peers_count)
return false;
random_index = crypto::rand<size_t>() % local_peers_count;
} }
CHECK_AND_ASSERT_MES(random_index < local_peers_count, false, "random_starter_index < peers_local.size() failed!!"); CHECK_AND_ASSERT_MES(random_index < local_peers_count, false, "random_starter_index < peers_local.size() failed!!");