From 3026875e620abcaaffb8815af6393a12fc8c942a Mon Sep 17 00:00:00 2001 From: weidai Date: Fri, 9 Jun 2006 07:15:06 +0000 Subject: [PATCH] fix SocketSender::EofSent --- trunk/c5/socketft.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/trunk/c5/socketft.cpp b/trunk/c5/socketft.cpp index 57905023..6c5a8ff9 100644 --- a/trunk/c5/socketft.cpp +++ b/trunk/c5/socketft.cpp @@ -442,7 +442,10 @@ bool SocketSender::EofSent() { WSANETWORKEVENTS events; m_s.CheckAndHandleError_int("WSAEnumNetworkEvents", WSAEnumNetworkEvents(m_s, m_event, &events)); - m_lastResult = (events.lNetworkEvents & FD_CLOSE) ? 1 : 0; + if ((events.lNetworkEvents & FD_CLOSE) != FD_CLOSE) + throw Socket::Err(m_s, "WSAEnumNetworkEvents (FD_CLOSE not present)", E_FAIL); + if (events.iErrorCode[FD_CLOSE_BIT] != 0) + throw Socket::Err(m_s, "FD_CLOSE (via WSAEnumNetworkEvents)", events.iErrorCode[FD_CLOSE_BIT]); m_resultPending = false; } return m_lastResult != 0;