Changeset View
Changeset View
Standalone View
Standalone View
src/addrman.cpp
Show First 20 Lines • Show All 562 Lines • ▼ Show 20 Lines | int CAddrMan::Check_() { | ||||
if (nKey.IsNull()) { | if (nKey.IsNull()) { | ||||
return -16; | return -16; | ||||
} | } | ||||
return 0; | return 0; | ||||
} | } | ||||
#endif | #endif | ||||
void CAddrMan::GetAddr_(std::vector<CAddress> &vAddr) { | void CAddrMan::GetAddr_(std::vector<CAddress> &vAddr, size_t max_addresses, | ||||
unsigned int nNodes = ADDRMAN_GETADDR_MAX_PCT * vRandom.size() / 100; | size_t max_pct) { | ||||
if (nNodes > ADDRMAN_GETADDR_MAX) { | size_t nNodes = vRandom.size(); | ||||
nNodes = ADDRMAN_GETADDR_MAX; | if (max_pct != 0) { | ||||
nNodes = max_pct * nNodes / 100; | |||||
} | |||||
if (max_addresses != 0) { | |||||
nNodes = std::min(nNodes, max_addresses); | |||||
} | } | ||||
// gather a list of random nodes, skipping those of low quality | // gather a list of random nodes, skipping those of low quality | ||||
for (unsigned int n = 0; n < vRandom.size(); n++) { | for (unsigned int n = 0; n < vRandom.size(); n++) { | ||||
if (vAddr.size() >= nNodes) { | if (vAddr.size() >= nNodes) { | ||||
break; | break; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 184 Lines • Show Last 20 Lines |