From c891967b6fcab2e8dc4ce0c787312b36c07efa4d Mon Sep 17 00:00:00 2001 From: s_nakamoto Date: Sat, 23 Oct 2010 17:43:53 +0000 Subject: bugfixes from Dean Gores, addr system changes, make sure no gen before block 74000 git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@173 1a98c847-1fd6-4fd8-948a-caf3550aa51b --- irc.cpp | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) (limited to 'irc.cpp') diff --git a/irc.cpp b/irc.cpp index 4c839c421..e246fcd10 100644 --- a/irc.cpp +++ b/irc.cpp @@ -84,18 +84,31 @@ bool RecvLine(SOCKET hSocket, string& strLine) } else if (nBytes <= 0) { + if (fShutdown) + return false; + if (nBytes < 0) + { + int nErr = WSAGetLastError(); + if (nErr == WSAEMSGSIZE) + continue; + if (nErr == WSAEWOULDBLOCK || nErr == WSAEINTR || nErr == WSAEINPROGRESS) + { + Sleep(10); + continue; + } + } if (!strLine.empty()) return true; - // socket closed - printf("IRC socket closed\n"); - return false; - } - else - { - // socket error - int nErr = WSAGetLastError(); - if (nErr != WSAEMSGSIZE && nErr != WSAEINTR && nErr != WSAEINPROGRESS) + if (nBytes == 0) + { + // socket closed + printf("IRC socket closed\n"); + return false; + } + else { + // socket error + int nErr = WSAGetLastError(); printf("IRC recv failed: %d\n", nErr); return false; } @@ -293,8 +306,8 @@ void ThreadIRCSeed2(void* parg) CAddress addr; if (DecodeAddress(pszName, addr)) { - addr.nTime = GetAdjustedTime() - 51 * 60; - if (AddAddress(addr)) + addr.nTime = GetAdjustedTime(); + if (AddAddress(addr, 51 * 60)) printf("IRC got new address\n"); nGotIRCAddresses++; } -- cgit v1.2.3