Changeset View
Changeset View
Standalone View
Standalone View
src/net.cpp
Show First 20 Lines • Show All 1,914 Lines • ▼ Show 20 Lines | while (!interruptNet) { | ||||
if (nTime > nNextFeeler) { | if (nTime > nNextFeeler) { | ||||
nNextFeeler = PoissonNextSend(nTime, FEELER_INTERVAL); | nNextFeeler = PoissonNextSend(nTime, FEELER_INTERVAL); | ||||
fFeeler = true; | fFeeler = true; | ||||
} else { | } else { | ||||
continue; | continue; | ||||
} | } | ||||
} | } | ||||
addrman.ResolveCollisions(); | |||||
int64_t nANow = GetAdjustedTime(); | int64_t nANow = GetAdjustedTime(); | ||||
int nTries = 0; | int nTries = 0; | ||||
while (!interruptNet) { | while (!interruptNet) { | ||||
CAddrInfo addr = addrman.Select(fFeeler); | CAddrInfo addr = addrman.SelectTriedCollision(); | ||||
// SelectTriedCollision returns an invalid address if it is empty. | |||||
if (!fFeeler || !addr.IsValid()) { | |||||
addr = addrman.Select(fFeeler); | |||||
} | |||||
// if we selected an invalid address, restart | // if we selected an invalid address, restart | ||||
if (!addr.IsValid() || setConnected.count(addr.GetGroup()) || | if (!addr.IsValid() || setConnected.count(addr.GetGroup()) || | ||||
IsLocal(addr)) { | IsLocal(addr)) { | ||||
break; | break; | ||||
} | } | ||||
// If we didn't find an appropriate destination after trying 100 | // If we didn't find an appropriate destination after trying 100 | ||||
▲ Show 20 Lines • Show All 1,157 Lines • Show Last 20 Lines |