From 7084756f4f4e34818659a10f62933fcfc77fe27f Mon Sep 17 00:00:00 2001 From: Patrick Strateman Date: Mon, 28 Oct 2013 13:20:21 -0700 Subject: process received messages one at a time without sleeping between messages --- src/main.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index ce45133a9f..d4816ca22f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3141,6 +3141,9 @@ void static ProcessGetData(CNode* pfrom) // Track requests for our stuff. Inventory(inv.hash); + + if (inv.type == MSG_BLOCK || inv.type == MSG_FILTERED_BLOCK) + break; } } @@ -3751,6 +3754,9 @@ bool ProcessMessages(CNode* pfrom) if (!pfrom->vRecvGetData.empty()) ProcessGetData(pfrom); + // this maintains the order of responses + if (!pfrom->vRecvGetData.empty()) return fOk; + std::deque::iterator it = pfrom->vRecvMsg.begin(); while (!pfrom->fDisconnect && it != pfrom->vRecvMsg.end()) { // Don't bother if send buffer is too full to respond anyway @@ -3841,6 +3847,8 @@ bool ProcessMessages(CNode* pfrom) if (!fRet) printf("ProcessMessage(%s, %u bytes) FAILED\n", strCommand.c_str(), nMessageSize); + + break; } // In case the connection got shut down, its receive buffer was wiped -- cgit v1.2.3