diff options
-rw-r--r-- | lib/connect.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/connect.c b/lib/connect.c index dd67638ff..57e203657 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -432,16 +432,15 @@ static bool verifyconnect(curl_socket_t sockfd, int *error) #endif - if( -1 == getsockopt(sockfd, SOL_SOCKET, SO_ERROR, - (void *)&err, &errSize)) + if (0 != getsockopt(sockfd, SOL_SOCKET, SO_ERROR, (void *)&err, &errSize)) err = SOCKERRNO; - #ifdef _WIN32_WCE - /* Always returns this error, bug in CE? */ - if(WSAENOPROTOOPT==err) - err=0; + /* Old WinCE versions don't support SO_ERROR */ + if (WSAENOPROTOOPT == err) { + SET_SOCKERRNO(0); + err = 0; + } #endif - if ((0 == err) || (EISCONN == err)) /* we are connected, awesome! */ rc = TRUE; |