Map win32 error codes

This commit is contained in:
Sara Golemon 2006-04-05 05:36:53 +00:00
parent fbcdff2161
commit 37307a8778

View File

@ -103,9 +103,26 @@ static int libssh2_banner_receive(LIBSSH2_SESSION *session)
ret = recv(session->socket_fd, &c, 1, LIBSSH2_SOCKET_RECV_FLAGS(session)); ret = recv(session->socket_fd, &c, 1, LIBSSH2_SOCKET_RECV_FLAGS(session));
if ((ret < 0) && (ret != EAGAIN)) { if (ret < 0) {
/* Some kinda error, but don't break for non-blocking issues */ #ifdef WIN32
return 1; switch (WSAGetLastError()) {
case WSAEWOULDBLOCK:
errno = EAGAIN;
break;
case WSAENOTCONN:
case WSAENOTSOCK:
case WSAECONNABORTED:
errno = EBADF;
break;
case WSAEINTR:
errno = EINTR;
break;
}
#endif /* WIN32 */
if (errno != EAGAIN) {
/* Some kinda error, but don't break for non-blocking issues */
return 1;
}
} }
if (ret <= 0) continue; if (ret <= 0) continue;