diff options
author | Daniel Stenberg <daniel@haxx.se> | 2011-10-17 22:01:09 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2011-10-17 23:12:58 +0200 |
commit | ecbb08cea3cd67406c49572eeb4f456dfc94cca2 (patch) | |
tree | bab366862315be33a94aa9e5f79c12826c5060e8 | |
parent | 491c5a497cc4cab0a488a0c94eec7d518d57d304 (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.c | 9 |
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; |