diff options
author | John Newbery <john@johnnewbery.com> | 2021-07-19 12:57:16 +0100 |
---|---|---|
committer | John Newbery <john@johnnewbery.com> | 2021-07-20 11:45:52 +0100 |
commit | 65332b1178c75e1f83415bad24918996a1524866 (patch) | |
tree | 44128681db330ad8f011763c11f702c8c0c7ea36 /src/addrman.cpp | |
parent | 201c5e4aec5210b258644ff96379cda0ca7273ab (diff) | |
download | bitcoin-65332b1178c75e1f83415bad24918996a1524866.tar.xz |
[addrman] Remove RemoveInvalid()
Instead of deserializing addresses, placing them in the buckets, and
then removing them if they're invalid, check first and don't place in
the buckets if they're invalid.
Diffstat (limited to 'src/addrman.cpp')
-rw-r--r-- | src/addrman.cpp | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/src/addrman.cpp b/src/addrman.cpp index 8192b4eba6..8f702b5a8c 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -77,38 +77,6 @@ double CAddrInfo::GetChance(int64_t nNow) const return fChance; } -void CAddrMan::RemoveInvalid() -{ - for (size_t bucket = 0; bucket < ADDRMAN_NEW_BUCKET_COUNT; ++bucket) { - for (size_t i = 0; i < ADDRMAN_BUCKET_SIZE; ++i) { - const auto id = vvNew[bucket][i]; - if (id != -1 && !mapInfo[id].IsValid()) { - ClearNew(bucket, i); - } - } - } - - for (size_t bucket = 0; bucket < ADDRMAN_TRIED_BUCKET_COUNT; ++bucket) { - for (size_t i = 0; i < ADDRMAN_BUCKET_SIZE; ++i) { - const auto id = vvTried[bucket][i]; - if (id == -1) { - continue; - } - const auto& addr_info = mapInfo[id]; - if (addr_info.IsValid()) { - continue; - } - vvTried[bucket][i] = -1; - --nTried; - SwapRandom(addr_info.nRandomPos, vRandom.size() - 1); - vRandom.pop_back(); - mapAddr.erase(addr_info); - mapInfo.erase(id); - m_tried_collisions.erase(id); - } - } -} - CAddrInfo* CAddrMan::Find(const CNetAddr& addr, int* pnId) { AssertLockHeld(cs); |