aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2011-10-17 22:01:09 +0200
committerDaniel Stenberg <daniel@haxx.se>2011-10-17 23:12:58 +0200
commitecbb08cea3cd67406c49572eeb4f456dfc94cca2 (patch)
treebab366862315be33a94aa9e5f79c12826c5060e8
parent491c5a497cc4cab0a488a0c94eec7d518d57d304 (diff)
singleipconnect: unstick the ipv6-connection boolean
Previously the bit was set before the connection was found working so if it would first fail to an ipv6 address and then connect fine to a IPv4 address the variable would still be TRUE. Reported by: Thomas L. Shinnick Bug: http://curl.haxx.se/bug/view.cgi?id=3421912
-rw-r--r--lib/connect.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/connect.c b/lib/connect.c
index 309ba355a..2a1876e71 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -907,11 +907,6 @@ singleipconnect(struct connectdata *conn,
Curl_persistconninfo(conn);
-#ifdef ENABLE_IPV6
- if(addr.family == AF_INET6)
- conn->bits.ipv6 = TRUE;
-#endif
-
if(data->set.tcp_nodelay)
tcpnodelay(conn, sockfd);
@@ -999,6 +994,10 @@ singleipconnect(struct connectdata *conn,
/* we are connected, awesome! */
*connected = TRUE; /* this is a true connect */
infof(data, "connected\n");
+#ifdef ENABLE_IPV6
+ conn->bits.ipv6 = (addr.family == AF_INET6)?TRUE:FALSE;
+#endif
+
Curl_updateconninfo(conn, sockfd);
*sockp = sockfd;
return CURLE_OK;