From 0e7203be8981a58be17dce6eb100cd24d92c7042 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 22 Nov 2001 13:57:00 +0000 Subject: this fix seems to make the connect fail properly even on IPv4-only Linux machines! --- lib/connect.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'lib') 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(); -- cgit v1.2.3