From 84764db3b222d707c00adbd6100ddefb38a909ef Mon Sep 17 00:00:00 2001 From: zeroZshadow Date: Sat, 15 Aug 2015 16:45:44 +0200 Subject: [PATCH] Rewrite RecvStart error checking as suggested by shuffle2 --- Source/Core/Core/HW/BBA-TAP/TAP_Win32.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Source/Core/Core/HW/BBA-TAP/TAP_Win32.cpp b/Source/Core/Core/HW/BBA-TAP/TAP_Win32.cpp index dbe0116400..ce9a18825e 100644 --- a/Source/Core/Core/HW/BBA-TAP/TAP_Win32.cpp +++ b/Source/Core/Core/HW/BBA-TAP/TAP_Win32.cpp @@ -304,21 +304,25 @@ bool CEXIETHERNET::RecvStart() DWORD res = ReadFile(mHAdapter, mRecvBuffer, BBA_RECV_SIZE, (LPDWORD)&mRecvBufferLength, &mReadOverlapped); - DWORD err = GetLastError(); - if (!res && err != ERROR_IO_PENDING) - { - // error occurred - ERROR_LOG(SP1, "Failed to recieve packet with error 0x%X", err); - return false; - } - if (res) { // Since the read is synchronous here, complete immediately RecvHandlePacket(); + return true; + } + else + { + DWORD err = GetLastError(); + if (err == ERROR_IO_PENDING) + { + return true; + } + + // Unexpected error + ERROR_LOG(SP1, "Failed to recieve packet with error 0x%X", err); + return false; } - return true; } void CEXIETHERNET::RecvStop()