Fixed FTP_SKIP_PASV_IP and FTP_USE_EPSV to "do right" when used on FTP thru

HTTP proxy.
This commit is contained in:
Daniel Stenberg 2006-01-12 22:18:38 +00:00
parent 31c7aa0ba4
commit d9bd5de0b1
3 changed files with 23 additions and 6 deletions

10
CHANGES
View File

@ -7,9 +7,13 @@
Changelog Changelog
Daniel (12 January 2006) Daniel (12 January 2006)
- Michael Jahn fixed PROXYTUNNEL to work fine when you do ftp through a proxy. - Michael Jahn:
It would previously overwrite internal memory and cause unpredicted
behaviour! Fixed FTP_SKIP_PASV_IP and FTP_USE_EPSV to "do right" when used on FTP thru
HTTP proxy.
Fixed PROXYTUNNEL to work fine when you do ftp through a proxy. It would
previously overwrite internal memory and cause unpredicted behaviour!
Daniel (11 January 2006) Daniel (11 January 2006)
- I decided to document the "secret option" here now, as I've received *NO* - I decided to document the "secret option" here now, as I've received *NO*

View File

@ -15,6 +15,7 @@ This release includes the following changes:
This release includes the following bugfixes: This release includes the following bugfixes:
o FTP_SKIP_PASV_IP and FTP_USE_EPSV when doing FTP over HTTP proxy
o Doing a second request with FTP on the same bath path, would make libcurl o Doing a second request with FTP on the same bath path, would make libcurl
confuse what current working directory it had confuse what current working directory it had
o FTP over HTTP proxy now sends the second CONNECT properly o FTP over HTTP proxy now sends the second CONNECT properly
@ -28,6 +29,8 @@ Other curl-related news since the previous public release:
o http://curl.hkmirror.org/ is a new curl web mirror in Hong Kong o http://curl.hkmirror.org/ is a new curl web mirror in Hong Kong
o http://curl.storemypix.com/ is a new curl web mirror in Germany o http://curl.storemypix.com/ is a new curl web mirror in Germany
o http://curl.s-lines.net/ is a new curl web mirror in Japan o http://curl.s-lines.net/ is a new curl web mirror in Japan
o TclCurl 0.15.1 was released:
http://personal1.iddeo.es/andresgarci/tclcurl/english/
This release would not have looked like this without help, code, reports and This release would not have looked like this without help, code, reports and
advice from friends like these: advice from friends like these:

View File

@ -1543,8 +1543,13 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn,
if(ptr) { if(ptr) {
newport = num; newport = num;
/* use the same IP we are already connected to */ if (conn->bits.tunnel_proxy)
snprintf(newhost, NEWHOST_BUFSIZE, "%s", conn->ip_addr_str); /* proxy tunnel -> use other host info because ip_addr_str is the
proxy address not the ftp host */
snprintf(newhost, sizeof(newhost), "%s", conn->host.name);
else
/* use the same IP we are already connected to */
snprintf(newhost, NEWHOST_BUFSIZE, "%s", conn->ip_addr_str);
} }
} }
else else
@ -1590,7 +1595,12 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn,
infof(data, "Skips %d.%d.%d.%d for data connection, uses %s instead\n", infof(data, "Skips %d.%d.%d.%d for data connection, uses %s instead\n",
ip[0], ip[1], ip[2], ip[3], ip[0], ip[1], ip[2], ip[3],
conn->ip_addr_str); conn->ip_addr_str);
snprintf(newhost, sizeof(newhost), "%s", conn->ip_addr_str); if (conn->bits.tunnel_proxy)
/* proxy tunnel -> use other host info because ip_addr_str is the
proxy address not the ftp host */
snprintf(newhost, sizeof(newhost), "%s", conn->host.name);
else
snprintf(newhost, sizeof(newhost), "%s", conn->ip_addr_str);
} }
else else
snprintf(newhost, sizeof(newhost), snprintf(newhost, sizeof(newhost),