X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Faddrman.cpp;h=ed17c39f1c74fd83341fa4d1a882723957330536;hb=15e9a03687e99d6b1a7a90e56e69a37faa6bb9b8;hp=359bfa879dcb500c0cec612f56736d0c5a25978c;hpb=77a43545b4491b9703d803765da9059d2bdd5aaa;p=novacoin.git diff --git a/src/addrman.cpp b/src/addrman.cpp index 359bfa8..ed17c39 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -43,13 +43,13 @@ bool CAddrInfo::IsTerrible(int64_t nNow) const if (nTime > nNow + 10*60) // came in a flying DeLorean return true; - if (nTime==0 || nNow-nTime > ADDRMAN_HORIZON_DAYS*86400) // not seen in over a month + if (nTime==0 || nNow-nTime > ADDRMAN_HORIZON_DAYS*nOneDay) // not seen in over a month return true; if (nLastSuccess==0 && nAttempts>=ADDRMAN_RETRIES) // tried three times and never a success return true; - if (nNow-nLastSuccess > ADDRMAN_MIN_FAIL_DAYS*86400 && nAttempts>=ADDRMAN_MAX_FAILURES) // 10 successive failures in the last week + if (nNow-nLastSuccess > ADDRMAN_MIN_FAIL_DAYS*nOneDay && nAttempts>=ADDRMAN_MAX_FAILURES) // 10 successive failures in the last week return true; return false; @@ -322,8 +322,8 @@ bool CAddrMan::Add_(const CAddress &addr, const CNetAddr& source, int64_t nTimeP if (pinfo) { // periodically update nTime - bool fCurrentlyOnline = (GetAdjustedTime() - addr.nTime < 24 * 60 * 60); - int64_t nUpdateInterval = (fCurrentlyOnline ? 60 * 60 : 24 * 60 * 60); + bool fCurrentlyOnline = (GetAdjustedTime() - addr.nTime < nOneDay); + int64_t nUpdateInterval = (fCurrentlyOnline ? nOneHour : nOneDay); if (addr.nTime && (!pinfo->nTime || pinfo->nTime < addr.nTime - nUpdateInterval - nTimePenalty)) pinfo->nTime = max((int64_t)0, addr.nTime - nTimePenalty); @@ -493,12 +493,12 @@ int CAddrMan::Check_() void CAddrMan::GetAddr_(std::vector &vAddr) { - int nNodes = ADDRMAN_GETADDR_MAX_PCT*vRandom.size()/100; + size_t nNodes = ADDRMAN_GETADDR_MAX_PCT*vRandom.size()/100; if (nNodes > ADDRMAN_GETADDR_MAX) nNodes = ADDRMAN_GETADDR_MAX; // perform a random shuffle over the first nNodes elements of vRandom (selecting from all) - for (int n = 0; n &vAddr) } } +void CAddrMan::GetOnlineAddr_(std::vector &vAddr) +{ + for (std::map::const_iterator it = mapInfo.begin(); it != mapInfo.end(); it++) + { + CAddrInfo addr = it->second; + bool fCurrentlyOnline = (GetAdjustedTime() - addr.nTime < nOneDay); + if (fCurrentlyOnline) + vAddr.push_back(addr); + } +} + void CAddrMan::Connected_(const CService &addr, int64_t nTime) { CAddrInfo *pinfo = Find(addr);