diff options
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | RELEASE-NOTES | 3 | ||||
-rw-r--r-- | lib/ftp.c | 13 |
3 files changed, 17 insertions, 3 deletions
@@ -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) @@ -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; |