]> granicus.if.org Git - curl/commitdiff
- Robert Iakobashvili fixed CURLOPT_INTERFACE for IPv6.
authorDaniel Stenberg <daniel@haxx.se>
Fri, 9 Mar 2007 22:48:07 +0000 (22:48 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 9 Mar 2007 22:48:07 +0000 (22:48 +0000)
CHANGES
RELEASE-NOTES
lib/connect.c

diff --git a/CHANGES b/CHANGES
index 9112d2ecaa8eb43ad0c619b1ef12df612c8e22c1..521480d9095aba2647b41103213995159d31543f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,8 @@
                                   Changelog
 
 Daniel (9 March 2007)
+- Robert Iakobashvili fixed CURLOPT_INTERFACE for IPv6.
+
 - Robert A. Monat improved the maketgz and VC6/8 generating to set the correct
   machine type too.
 
index 636a0d91b0c5586860a82ebbb91ba2d272388694..d19a6af53c4a0571e0b1c27665246511e8647394 100644 (file)
@@ -38,6 +38,7 @@ This release includes the following bugfixes:
    used
  o HTTP Digest header parsing fix for unquoted last word ending with CRLF
  o CURLOPT_PORT, HTTP proxy, re-using connections and non-HTTP protocols
+ o CURLOPT_INTERFACE for ipv6
 
 This release includes the following known bugs:
 
@@ -58,6 +59,7 @@ advice from friends like these:
  Yang Tse, Manfred Schwarb, Michael Wallner, Jeff Pohlmeyer, Shmulik Regev,
  Rob Crittenden, Robert A. Monat, Dan Fandrich, Duncan Mac-Vicar Prett,
  Michal Marek, Robson Braga Araujo, Ian Turner, Linus Nielsen Feltzing,
- Ravi Pratap, Adam D. Moss, Jose Kahan, Hang Kin Lau, Justin Fletcher
+ Ravi Pratap, Adam D. Moss, Jose Kahan, Hang Kin Lau, Justin Fletcher,
+ Robert Iakobashvili
 
         Thanks! (and sorry if I forgot to mention someone)
index a18a335af837469a67a4e607fdd6ccad7616ec49..d98569fcea55f43da1be4f9853be7a3e1a3e25e7 100644 (file)
@@ -233,7 +233,9 @@ static CURLcode bindlocal(struct connectdata *conn,
     char myhost[256] = "";
     in_addr_t in;
     int rc;
+    char ipv6_addr[16];
     bool was_iface = FALSE;
+    int in6 = -1;
 
     /* First check if the given name is an IP address */
     in=inet_addr(data->set.device);
@@ -314,7 +316,11 @@ static CURLcode bindlocal(struct connectdata *conn,
 #endif
 
     in=inet_addr(myhost);
-    if (CURL_INADDR_NONE == in) {
+
+#ifdef ENABLE_IPV6
+    in6 = inet_pton (AF_INET6, myhost, (void *)&ipv6_addr);
+#endif
+    if (CURL_INADDR_NONE == in && -1 == in6) {
       failf(data,"couldn't find my own IP address (%s)", myhost);
       return CURLE_HTTP_PORT_FAILED;
     } /* end of inet_addr */