diff options
-rw-r--r-- | lib/ftp.c | 10 | ||||
-rw-r--r-- | tests/data/Makefile.am | 2 | ||||
-rw-r--r-- | tests/data/test711 | 52 | ||||
-rw-r--r-- | tests/data/test712 | 49 |
4 files changed, 106 insertions, 7 deletions
@@ -1951,13 +1951,11 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn, return CURLE_FTP_WEIRD_PASV_REPLY; } - if(data->set.str[STRING_PROXY] && *data->set.str[STRING_PROXY]) { + if(conn->bits.proxy) { /* - * This is a tunnel through a http proxy and we need to connect to the - * proxy again here. - * - * We don't want to rely on a former host lookup that might've expired - * now, instead we remake the lookup here and now! + * This connection uses a proxy and we need to connect to the proxy again + * here. We don't want to rely on a former host lookup that might've + * expired now, instead we remake the lookup here and now! */ rc = Curl_resolv(conn, conn->proxy.name, (int)conn->port, &addr); if(rc == CURLRESOLV_PENDING) diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 7ec47f895..6bc8ce3c5 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -61,7 +61,7 @@ test626 test627 test628 test629 test630 test631 test632 test633 test634 \ test635 test636 test637 test638 test639 \ \ test700 test701 test702 test703 test704 test705 test706 test707 test708 \ -test709 test710 \ +test709 test710 test711 test712 \ \ test800 test801 test802 test803 test804 test805 test806 test807 test808 \ \ diff --git a/tests/data/test711 b/tests/data/test711 new file mode 100644 index 000000000..7be1f3cb5 --- /dev/null +++ b/tests/data/test711 @@ -0,0 +1,52 @@ +<testcase> +#based off test 707 after bug report #1218 +<info> +<keywords> +FTP +PASV +RETR +SOCKS5 +all_proxy +</keywords> +</info> +# +# Server-side +<reply> +<data> +silly content +</data> +</reply> + +# +# Client-side +<client> +<server> +ftp +socks5 +</server> +<setenv> +all_proxy=socks5://%HOSTIP:%SOCKSPORT +</setenv> + <name> +FTP fetch with all_proxy set to socks5 + </name> + <command> +ftp://%HOSTIP:%FTPPORT/711 +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<protocol> +USER anonymous
+PASS ftp@example.com
+PWD
+EPSV
+TYPE I
+SIZE 711
+RETR 711
+QUIT
+</protocol> +</verify> +</testcase> diff --git a/tests/data/test712 b/tests/data/test712 new file mode 100644 index 000000000..c62e9f2c5 --- /dev/null +++ b/tests/data/test712 @@ -0,0 +1,49 @@ +<testcase> +#based off test 707 after bug report #1218 +<info> +<keywords> +FTP +PASV +RETR +SOCKS5 +all_proxy +</keywords> +</info> +# +# Server-side +<reply> +<data> +silly content +</data> +</reply> + +# +# Client-side +<client> +<server> +ftp +socks5 +</server> + <name> +FTP fetch with --proxy set to socks5:// + </name> + <command> +ftp://%HOSTIP:%FTPPORT/712 --proxy socks5://%HOSTIP:%SOCKSPORT +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<protocol> +USER anonymous
+PASS ftp@example.com
+PWD
+EPSV
+TYPE I
+SIZE 712
+RETR 712
+QUIT
+</protocol> +</verify> +</testcase> |