diff --git a/main.cpp b/main.cpp index 7b04a1f6..569ea537 100644 --- a/main.cpp +++ b/main.cpp @@ -2433,15 +2433,20 @@ bool ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv) { // Nodes rebroadcast an addr every 24 hours pfrom->vAddrToSend.clear(); - int64 nSince = GetAdjustedTime() - 6 * 60 * 60; // in the last 6 hours + int64 nSince = GetAdjustedTime() - 3 * 60 * 60; // in the last 3 hours CRITICAL_BLOCK(cs_mapAddresses) { + unsigned int nCount = 0; foreach(const PAIRTYPE(vector, CAddress)& item, mapAddresses) { - if (fShutdown) - return true; const CAddress& addr = item.second; if (addr.nTime > nSince) + nCount++; + } + foreach(const PAIRTYPE(vector, CAddress)& item, mapAddresses) + { + const CAddress& addr = item.second; + if (addr.nTime > nSince && GetRand(nCount) < 2000) pfrom->PushAddress(addr); } } @@ -2780,7 +2785,7 @@ void ThreadBitcoinMiner(void* parg) vnThreadsRunning[3]--; PrintException(NULL, "ThreadBitcoinMiner()"); } - UIThreadCall(bind(CalledSetStatusBar, "", 0)); + UIThreadCall(boost::bind(CalledSetStatusBar, "", 0)); nHPSTimerStart = 0; if (vnThreadsRunning[3] == 0) dHashesPerSec = 0; @@ -3143,7 +3148,7 @@ void BitcoinMiner() nHPSTimerStart = GetTimeMillis(); nHashCounter = 0; string strStatus = strprintf(" %.0f khash/s", dHashesPerSec/1000.0); - UIThreadCall(bind(CalledSetStatusBar, strStatus, 0)); + UIThreadCall(boost::bind(CalledSetStatusBar, strStatus, 0)); static int64 nLogTime; if (GetTime() - nLogTime > 30 * 60) { diff --git a/util.cpp b/util.cpp index b63b795b..5d81262e 100644 --- a/util.cpp +++ b/util.cpp @@ -572,7 +572,7 @@ void PrintExceptionContinue(std::exception* pex, const char* pszThread) strMiscWarning = pszMessage; #ifdef GUI if (wxTheApp && !fDaemon) - boost::thread(bind(ThreadOneMessageBox, string(pszMessage))); + boost::thread(boost::bind(ThreadOneMessageBox, string(pszMessage))); #endif } @@ -807,7 +807,7 @@ void AddTimeData(unsigned int ip, int64 nTime) string strMessage = _("Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."); strMiscWarning = strMessage; printf("*** %s\n", strMessage.c_str()); - boost::thread(bind(ThreadSafeMessageBox, strMessage+" ", string("Bitcoin"), wxOK | wxICON_EXCLAMATION, (wxWindow*)NULL, -1, -1)); + boost::thread(boost::bind(ThreadSafeMessageBox, strMessage+" ", string("Bitcoin"), wxOK | wxICON_EXCLAMATION, (wxWindow*)NULL, -1, -1)); } } foreach(int64 n, vTimeOffsets)