Remove weird 10% inverted selection logic

This commit is contained in:
Pieter Wuille 2013-04-13 21:45:36 +02:00
parent 5df66a2212
commit 3f44b0ae3d

11
db.cpp
View file

@ -51,16 +51,9 @@ bool CAddrDb::Get_(CService &ip, int &wait) {
int rnd = rand() % tot; int rnd = rand() % tot;
int ret; int ret;
if (rnd < unkId.size()) { if (rnd < unkId.size()) {
if (rnd*10 < unkId.size()) { set<int>::iterator it = unkId.end(); it--;
// once every 10 attempts, restart with the oldest unknown IP
set<int>::iterator it = unkId.begin();
ret = *it; ret = *it;
} else { unkId.erase(it);
// 90% of the time try the last learned IP
set<int>::reverse_iterator it = unkId.rbegin();
ret = *it;
}
unkId.erase(ret);
} else { } else {
ret = ourId.front(); ret = ourId.front();
if (time(NULL) - idToInfo[ret].ourLastTry < MIN_RETRY) return false; if (time(NULL) - idToInfo[ret].ourLastTry < MIN_RETRY) return false;