FTP: prevent the multi interface from blocking
As pointed out in Bug report #3579064, curl_multi_perform() would wrongly use a blocking mechanism internally for some commands which could lead to for example a very long block if the LIST response never showed. The solution was to make sure to properly continue to use the multi interface non-blocking state machine. The new test 1501 verifies the fix. Bug: http://curl.haxx.se/bug/view.cgi?id=3579064 Reported by: Guido Berhoerster
This commit is contained in:
53
tests/data/test1501
Normal file
53
tests/data/test1501
Normal file
@@ -0,0 +1,53 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
RETR
|
||||
multi
|
||||
LIST
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
<servercmd>
|
||||
DELAY LIST 2
|
||||
DELAY TYPE 2
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<tool>
|
||||
lib1501
|
||||
</tool>
|
||||
<name>
|
||||
FTP with multi interface and slow LIST response
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/1501/
|
||||
</command>
|
||||
</client>
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
0
|
||||
</errorcode>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS ftp@example.com
|
||||
PWD
|
||||
CWD 1501
|
||||
EPSV
|
||||
TYPE A
|
||||
LIST
|
||||
QUIT
|
||||
</protocol>
|
||||
|
||||
</verify>
|
||||
</testcase>
|
||||
Reference in New Issue
Block a user