From e2c2648c14f4b87d331dbc30f0f2bd4aab9ce7e6 Mon Sep 17 00:00:00 2001 From: s_nakamoto Date: Mon, 14 Dec 2009 02:12:01 +0000 Subject: filter out duplicate getblocks and don't relay inv messages during initial block download -- 0.2 rc2 git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@49 1a98c847-1fd6-4fd8-948a-caf3550aa51b --- net.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'net.cpp') diff --git a/net.cpp b/net.cpp index 941e7c4dc..168651ca2 100644 --- a/net.cpp +++ b/net.cpp @@ -40,6 +40,23 @@ CAddress addrProxy("127.0.0.1:9050"); + + +void CNode::PushGetBlocks(CBlockIndex* pindexBegin, uint256 hashEnd) +{ + // Filter out duplicate requests + if (pindexBegin == pindexLastGetBlocksBegin && hashEnd == hashLastGetBlocksEnd) + return; + pindexLastGetBlocksBegin = pindexBegin; + hashLastGetBlocksEnd = hashEnd; + + PushMessage("getblocks", CBlockLocator(pindexBegin), hashEnd); +} + + + + + bool ConnectSocket(const CAddress& addrConnect, SOCKET& hSocketRet) { hSocketRet = INVALID_SOCKET; @@ -764,12 +781,12 @@ void ThreadSocketHandler2(void* parg) printf("socket no message in first 60 seconds, %d %d\n", pnode->nLastRecv != 0, pnode->nLastSend != 0); pnode->fDisconnect = true; } - else if (GetTime() - pnode->nLastSend > 10 * 60 && GetTime() - pnode->nLastSendEmpty > 10 * 60) + else if (GetTime() - pnode->nLastSend > 90*60 && GetTime() - pnode->nLastSendEmpty > 90*60) { printf("socket not sending\n"); pnode->fDisconnect = true; } - else if (GetTime() - pnode->nLastRecv > (pnode->nVersion >= 107 ? 15*60 : 90*60)) + else if (GetTime() - pnode->nLastRecv > 90*60) { printf("socket inactivity timeout\n"); pnode->fDisconnect = true; -- cgit v1.2.3