aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2007-03-09 22:48:07 +0000
committerDaniel Stenberg <daniel@haxx.se>2007-03-09 22:48:07 +0000
commit1e55ed5c7d04c47fc931719fea05314f126aa974 (patch)
tree4e7c9f1ab950cba142f72b53d6a0c8aec9faf979
parent6dd4fe0740b86087d9bb1957f191da1fb6e6b7e6 (diff)
- Robert Iakobashvili fixed CURLOPT_INTERFACE for IPv6.
-rw-r--r--CHANGES2
-rw-r--r--RELEASE-NOTES4
-rw-r--r--lib/connect.c8
3 files changed, 12 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index 9112d2eca..521480d90 100644
--- 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.
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 636a0d91b..d19a6af53 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -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)
diff --git a/lib/connect.c b/lib/connect.c
index a18a335af..d98569fce 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -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 */