Fix detection of socket errors

This commit is contained in:
Bert Belder 2011-01-17 22:49:23 +01:00
parent 2ce0961de1
commit 5087c62f18
2 changed files with 7 additions and 7 deletions

View File

@ -448,7 +448,7 @@ static Handle<Value> Connect(const Arguments& args) {
#else // __MINGW32__ #else // __MINGW32__
int r = connect(_get_osfhandle(fd), addr, addrlen); int r = connect(_get_osfhandle(fd), addr, addrlen);
if (r == INVALID_SOCKET) { if (r == SOCKET_ERROR) {
int wsaErrno = WSAGetLastError(); int wsaErrno = WSAGetLastError();
if (wsaErrno != WSAEWOULDBLOCK && wsaErrno != WSAEINPROGRESS) { if (wsaErrno != WSAEWOULDBLOCK && wsaErrno != WSAEINPROGRESS) {
return ThrowException(ErrnoException(wsaErrno, "connect")); return ThrowException(ErrnoException(wsaErrno, "connect"));
@ -642,7 +642,7 @@ static Handle<Value> Accept(const Arguments& args) {
#else // __MINGW32__ #else // __MINGW32__
int peer_handle = accept(_get_osfhandle(fd), (struct sockaddr*) &address_storage, &len); int peer_handle = accept(_get_osfhandle(fd), (struct sockaddr*) &address_storage, &len);
if (peer_handle == INVALID_SOCKET) { if (peer_handle == SOCKET_ERROR) {
int wsaErrno = WSAGetLastError(); int wsaErrno = WSAGetLastError();
if (wsaErrno == WSAEWOULDBLOCK) return scope.Close(Null()); if (wsaErrno == WSAEWOULDBLOCK) return scope.Close(Null());
return ThrowException(ErrnoException(wsaErrno, "accept")); return ThrowException(ErrnoException(wsaErrno, "accept"));

View File

@ -229,10 +229,10 @@ int wsa_socketpair(int af, int type, int proto, SOCKET sock[2]) {
if ((sock[1] = accept(listen_sock, 0, 0)) == INVALID_SOCKET) if ((sock[1] = accept(listen_sock, 0, 0)) == INVALID_SOCKET)
goto error; goto error;
if (getpeername(sock[0], (SOCKADDR*)&addr1, &addr1_len) == INVALID_SOCKET) if (getpeername(sock[0], (SOCKADDR*)&addr1, &addr1_len) == SOCKET_ERROR)
goto error; goto error;
if (getsockname(sock[1], (SOCKADDR*)&addr2, &addr2_len) == INVALID_SOCKET) if (getsockname(sock[1], (SOCKADDR*)&addr2, &addr2_len) == SOCKET_ERROR)
goto error; goto error;
if (addr1_len != addr2_len if (addr1_len != addr2_len
@ -308,10 +308,10 @@ int wsa_sync_async_socketpair(int af, int type, int proto, SOCKET *syncSocket, S
if ((sock2 = accept(listen_sock, 0, 0)) == INVALID_SOCKET) if ((sock2 = accept(listen_sock, 0, 0)) == INVALID_SOCKET)
goto error; goto error;
if (getpeername(sock1, (SOCKADDR*)&addr1, &addr1_len) == INVALID_SOCKET) if (getpeername(sock1, (SOCKADDR*)&addr1, &addr1_len) == SOCKET_ERROR)
goto error; goto error;
if (getsockname(sock2, (SOCKADDR*)&addr2, &addr2_len) == INVALID_SOCKET) if (getsockname(sock2, (SOCKADDR*)&addr2, &addr2_len) == SOCKET_ERROR)
goto error; goto error;
if (addr1_len != addr2_len if (addr1_len != addr2_len
@ -425,7 +425,7 @@ inline static void wsa_get_extension_function(SOCKET socket, GUID guid, void **t
inline static void wsa_init_extension_functions() { inline static void wsa_init_extension_functions() {
SOCKET dummy = socket(AF_INET, SOCK_STREAM, IPPROTO_IP); SOCKET dummy = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
if (dummy == SOCKET_ERROR) { if (dummy == INVALID_SOCKET) {
memset((void*)&wsexf, 0, sizeof(wsexf)); memset((void*)&wsexf, 0, sizeof(wsexf));
wsa_perror("socket"); wsa_perror("socket");
return; return;