X-Git-Url: http://git.pk910.de/?p=NextIRCd.git;a=blobdiff_plain;f=src%2FIOHandler%2FIOSockets.c;fp=src%2FIOHandler%2FIOSockets.c;h=7c3c50a8f7e8b8770afd72a77f12acaed628d27d;hp=55c6cee6035114c67550db8b8fc98307b0fe15ae;hb=2d694e116e0f9c5bf9f72c78d12892266cfa8288;hpb=981be1f880efeca4ecac1156317f6dbebf707087 diff --git a/src/IOHandler/IOSockets.c b/src/IOHandler/IOSockets.c index 55c6cee..7c3c50a 100644 --- a/src/IOHandler/IOSockets.c +++ b/src/IOHandler/IOSockets.c @@ -47,7 +47,7 @@ #include #ifndef EWOULDBLOCK -#define EWOULDBLOCK EAGAIN +#define EWOULDBLOCK WSAEWOULDBLOCK #endif struct _IOSocket *iosocket_first = NULL; @@ -1072,14 +1072,20 @@ void iosocket_events_callback(struct _IOSocket *iosock, int readable, int writea else bytes = recv(iosock->fd, iosock->readbuf.buffer + iosock->readbuf.bufpos, iosock->readbuf.buflen - iosock->readbuf.bufpos, 0); - if(bytes <= 0) { + if(bytes <= 0) { + int errcode; + #ifdef WIN32 + errcode = WSAGetLastError(); + #else + errcode = errno; + #endif if((iosock->socket_flags & (IOSOCKETFLAG_SSLSOCKET | IOSOCKETFLAG_SSL_READHS)) == (IOSOCKETFLAG_SSLSOCKET | IOSOCKETFLAG_SSL_READHS)) { ssl_rehandshake = 1; - } else if (errno != EAGAIN || errno != EWOULDBLOCK) { + } else if (errcode != EAGAIN && errcode != EWOULDBLOCK) { iosock->socket_flags |= IOSOCKETFLAG_DEAD; callback_event.type = IOSOCKETEVENT_CLOSED; - callback_event.data.errid = errno; + callback_event.data.errid = errcode; } } else { int i;