|
|
|
@ -745,7 +745,7 @@ std::pair<CAddress, int64_t> AddrManImpl::Select_(bool newOnly) const
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void AddrManImpl::GetAddr_(std::vector<CAddress>& vAddr, size_t max_addresses, size_t max_pct, std::optional<Network> network) const
|
|
|
|
|
std::vector<CAddress> AddrManImpl::GetAddr_(size_t max_addresses, size_t max_pct, std::optional<Network> network) const
|
|
|
|
|
{
|
|
|
|
|
AssertLockHeld(cs);
|
|
|
|
|
|
|
|
|
@ -759,8 +759,9 @@ void AddrManImpl::GetAddr_(std::vector<CAddress>& vAddr, size_t max_addresses, s
|
|
|
|
|
|
|
|
|
|
// gather a list of random nodes, skipping those of low quality
|
|
|
|
|
const int64_t now{GetAdjustedTime()};
|
|
|
|
|
std::vector<CAddress> addresses;
|
|
|
|
|
for (unsigned int n = 0; n < vRandom.size(); n++) {
|
|
|
|
|
if (vAddr.size() >= nNodes)
|
|
|
|
|
if (addresses.size() >= nNodes)
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
int nRndPos = insecure_rand.randrange(vRandom.size() - n) + n;
|
|
|
|
@ -776,8 +777,10 @@ void AddrManImpl::GetAddr_(std::vector<CAddress>& vAddr, size_t max_addresses, s
|
|
|
|
|
// Filter for quality
|
|
|
|
|
if (ai.IsTerrible(now)) continue;
|
|
|
|
|
|
|
|
|
|
vAddr.push_back(ai);
|
|
|
|
|
addresses.push_back(ai);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return addresses;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void AddrManImpl::Connected_(const CService& addr, int64_t nTime)
|
|
|
|
@ -1080,10 +1083,9 @@ std::vector<CAddress> AddrManImpl::GetAddr(size_t max_addresses, size_t max_pct,
|
|
|
|
|
{
|
|
|
|
|
LOCK(cs);
|
|
|
|
|
Check();
|
|
|
|
|
std::vector<CAddress> vAddr;
|
|
|
|
|
GetAddr_(vAddr, max_addresses, max_pct, network);
|
|
|
|
|
const auto addresses = GetAddr_(max_addresses, max_pct, network);
|
|
|
|
|
Check();
|
|
|
|
|
return vAddr;
|
|
|
|
|
return addresses;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void AddrManImpl::Connected(const CService &addr, int64_t nTime)
|
|
|
|
|