aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES4
-rw-r--r--RELEASE-NOTES3
-rw-r--r--lib/ftp.c13
3 files changed, 17 insertions, 3 deletions
diff --git a/CHANGES b/CHANGES
index 9a6d470b0..d2e35cd64 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,10 @@
Changelog
+Daniel (19 January 2006)
+- Jon Turner pointed out that doing -P [hostname] with curl (built ipv4-only)
+ didn't work.
+
Daniel (18 January 2006)
- As reported in bug #1408742 (http://curl.haxx.se/bug/view.cgi?id=1408742),
the configure script complained about a missing "missing" script if you ran
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 7ced46c7c..11485e8d2 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -18,6 +18,7 @@ This release includes the following changes:
This release includes the following bugfixes:
+ o -P [hostname] with ipv6-disabled curl
o libcurl.m4 was updated
o configure no longer warns if the current path contains a space
o test suite kill race condition
@@ -43,6 +44,6 @@ advice from friends like these:
Dov Murik, Jean Jacques Drouin, Andres Garcia, Yang Tse, Gisle Vanem, Dan
Fandrich, Alexander Lazic, Michael Jahn, Andrew Benham, Bryan Henderson,
- David Shaw
+ David Shaw, Jon Turner
Thanks! (and sorry if I forgot to mention someone)
diff --git a/lib/ftp.c b/lib/ftp.c
index 7f52127c4..2361c89ec 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -1011,6 +1011,8 @@ static CURLcode ftp_state_use_port(struct connectdata *conn,
bool sa_filled_in = FALSE;
Curl_addrinfo *addr = NULL;
unsigned short ip[4];
+ bool freeaddr = TRUE;
+
(void)fcmd; /* not used in the IPv4 code */
if(data->set.ftpport) {
in_addr_t in;
@@ -1030,7 +1032,7 @@ static CURLcode ftp_state_use_port(struct connectdata *conn,
else if(strlen(data->set.ftpport)> 1) {
/* might be a host name! */
struct Curl_dns_entry *h=NULL;
- int rc = Curl_resolv(conn, myhost, 0, &h);
+ int rc = Curl_resolv(conn, data->set.ftpport, 0, &h);
if(rc == CURLRESOLV_PENDING)
/* BLOCKING */
rc = Curl_wait_for_resolv(conn, &h);
@@ -1039,7 +1041,13 @@ static CURLcode ftp_state_use_port(struct connectdata *conn,
/* when we return from this function, we can forget about this entry
so we can unlock it now already */
Curl_resolv_unlock(data, h);
+
+ freeaddr = FALSE; /* make sure we don't free 'addr' in this function
+ since it points to a DNS cache entry! */
} /* (h) */
+ else {
+ infof(data, "Failed to resolve host name %s\n", data->set.ftpport);
+ }
} /* strlen */
} /* CURL_INADDR_NONE */
} /* data->set.ftpport */
@@ -1132,7 +1140,8 @@ static CURLcode ftp_state_use_port(struct connectdata *conn,
else
return CURLE_FTP_PORT_FAILED;
- Curl_freeaddrinfo(addr);
+ if(freeaddr)
+ Curl_freeaddrinfo(addr);
ftp->count1 = PORT;