1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 16:18:48 -05:00
curl/tests/data/test1233
Daniel Stenberg 7cc00d9a83 FTP: when EPSV gets a 229 but fails to connect, retry with PASV
This is a regression as this logic used to work. It isn't clear when it
broke, but I'm assuming in 7.28.0 when we went all-multi internally.

This likely never worked with the multi interface. As the failed
connection is detected once the multi state has reached DO_MORE, the
Curl_do_more() function was now expanded somewhat so that the
ftp_do_more() function can request to go "back" to the previous state
when it makes another attempt - using PASV.

Added test case 1233 to verify this fix. It has the little issue that it
assumes no service is listening/accepting connections on port 1...

Reported-by: byte_bucket in the #curl IRC channel
2013-08-06 09:57:59 +02:00

47 lines
606 B
Plaintext

<testcase>
<info>
<keywords>
FTP
</keywords>
</info>
# Server-side
<reply>
<servercmd>
# Assuming there's nothing listening on port 1
REPLY EPSV 229 Entering Passiv Mode (|||1|)
</servercmd>
<data>
here are some bytes
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP failing to connect to EPSV port, switching to PASV
</name>
<command>
ftp://%HOSTIP:%FTPPORT/1233
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
EPSV
PASV
TYPE I
SIZE 1233
RETR 1233
QUIT
</protocol>
</verify>
</testcase>