Browse Source

Remove weird 10% inverted selection logic

pull/1/head
Pieter Wuille 12 years ago
parent
commit
3f44b0ae3d
  1. 11
      db.cpp

11
db.cpp

@ -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;

Loading…
Cancel
Save