* net.cc (wsock_event::wait): Make wsa_err an int. Don't set

ret to 0 if any error has happened.
This commit is contained in:
Corinna Vinschen 2004-04-01 10:36:40 +00:00
parent 4fc406c935
commit 4cfacffa79
2 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2004-04-01 Corinna Vinschen <corinna@vinschen.de>
* net.cc (wsock_event::wait): Make wsa_err an int. Don't set
ret to 0 if any error has happened.
2004-04-01 Corinna Vinschen <corinna@vinschen.de> 2004-04-01 Corinna Vinschen <corinna@vinschen.de>
* fhandler_socket.cc (fhandler_socket::sendto): Drop out of loop if * fhandler_socket.cc (fhandler_socket::sendto): Drop out of loop if

View File

@ -69,7 +69,7 @@ int
wsock_event::wait (int sock, int &closed) wsock_event::wait (int sock, int &closed)
{ {
int ret = SOCKET_ERROR; int ret = SOCKET_ERROR;
DWORD wsa_err = 0; int wsa_err = 0;
WSAEVENT ev[2] = { event, signal_arrived }; WSAEVENT ev[2] = { event, signal_arrived };
switch (WSAWaitForMultipleEvents (2, ev, FALSE, WSA_INFINITE, FALSE)) switch (WSAWaitForMultipleEvents (2, ev, FALSE, WSA_INFINITE, FALSE))
{ {
@ -94,11 +94,14 @@ wsock_event::wait (int sock, int &closed)
if (evts.lNetworkEvents & FD_CLOSE) if (evts.lNetworkEvents & FD_CLOSE)
{ {
closed = 1; closed = 1;
if (!wsa_err && evts.iErrorCode[FD_CLOSE_BIT]) if (!wsa_err)
{
if (evts.iErrorCode[FD_CLOSE_BIT])
wsa_err = evts.iErrorCode[FD_CLOSE_BIT]; wsa_err = evts.iErrorCode[FD_CLOSE_BIT];
else else
ret = 0; ret = 0;
} }
}
if (wsa_err) if (wsa_err)
WSASetLastError (wsa_err); WSASetLastError (wsa_err);
} }