diff options
author | Daniel Stenberg <daniel@haxx.se> | 2001-11-22 13:57:00 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2001-11-22 13:57:00 +0000 |
commit | 0e7203be8981a58be17dce6eb100cd24d92c7042 (patch) | |
tree | a78f9f314ec0a66f842a5eadc69ef614090894e8 | |
parent | 52dbc96c32b51ff0a6958682a23c73e1f3bb7d6d (diff) |
this fix seems to make the connect fail properly even on IPv4-only Linux
machines!
-rw-r--r-- | lib/connect.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/connect.c b/lib/connect.c index 274f7b1e1..277e1dfae 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -309,9 +309,8 @@ static CURLcode bindlocal(struct connectdata *conn, return CURLE_HTTP_PORT_FAILED; } -#else /* end of ipv4-specific section */ +#endif /* end of ipv4-specific section */ -/* we only use socketerror() on IPv6-enabled machines */ static int socketerror(int sockfd) { @@ -324,7 +323,6 @@ int socketerror(int sockfd) return err; } -#endif /* * TCP connect to the given host with timeout, proxy or remote doesn't matter. @@ -525,6 +523,16 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ } } + if(0 == rc) { + int err = socketerror(sockfd); + if ((0 == err) || (EISCONN == err)) { + /* we are connected, awesome! */ + break; + } + /* nope, not connected for real */ + rc = -1; + } + if(0 != rc) { /* get a new timeout for next attempt */ after = Curl_tvnow(); |