aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/connect.c13
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;