#include <stdarg.h>
#ifndef EWOULDBLOCK
-#define EWOULDBLOCK EAGAIN
+#define EWOULDBLOCK WSAEWOULDBLOCK
#endif
struct _IOSocket *iosocket_first = NULL;
else
bytes = recv(iosock->fd, iosock->readbuf.buffer + iosock->readbuf.bufpos, iosock->readbuf.buflen - iosock->readbuf.bufpos, 0);
- if(bytes <= 0) {\r
+ if(bytes <= 0) {
+ int errcode;
+ #ifdef WIN32
+ errcode = WSAGetLastError();
+ #else
+ errcode = errno;
+ #endif\r
if((iosock->socket_flags & (IOSOCKETFLAG_SSLSOCKET | IOSOCKETFLAG_SSL_READHS)) == (IOSOCKETFLAG_SSLSOCKET | IOSOCKETFLAG_SSL_READHS)) {\r
ssl_rehandshake = 1;\r
- } 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;