aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ftp.c10
-rw-r--r--tests/data/Makefile.am2
-rw-r--r--tests/data/test71152
-rw-r--r--tests/data/test71249
4 files changed, 106 insertions, 7 deletions
diff --git a/lib/ftp.c b/lib/ftp.c
index fb7c5737e..5d78ad6ba 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -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>