| 65 | } |
| 66 | |
| 67 | bool AddrInfo::IsTerrible(int64_t nNow) const |
| 68 | { |
| 69 | if (nLastTry && nLastTry >= nNow - 60) // never remove things tried in the last minute |
| 70 | return false; |
| 71 | |
| 72 | if (nTime > nNow + 10 * 60) // came in a flying DeLorean |
| 73 | return true; |
| 74 | |
| 75 | if (nTime == 0 || nNow - nTime > ADDRMAN_HORIZON_DAYS * 24 * 60 * 60) // not seen in recent history |
| 76 | return true; |
| 77 | |
| 78 | if (nLastSuccess == 0 && nAttempts >= ADDRMAN_RETRIES) // tried N times and never a success |
| 79 | return true; |
| 80 | |
| 81 | if (nNow - nLastSuccess > ADDRMAN_MIN_FAIL_DAYS * 24 * 60 * 60 && nAttempts >= ADDRMAN_MAX_FAILURES) // N successive failures in the last week |
| 82 | return true; |
| 83 | |
| 84 | return false; |
| 85 | } |
| 86 | |
| 87 | double AddrInfo::GetChance(int64_t nNow) const |
| 88 | { |