mirror of
https://github.com/curl/curl.git
synced 2024-12-27 06:59:43 +08:00
7cc00d9a83
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
47 lines
606 B
Plaintext
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>
|