1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-15 22:15:13 -05:00
curl/tests/data/test592
Daniel Stenberg b2954e66e8 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
2012-11-04 19:05:39 +01:00

74 lines
1.1 KiB
Plaintext

#
# For this test the server rejects the EPRT command,
# code in lib591 makes use of curl_multi_timeout()
# and server does not establish data connection.
#
<testcase>
<info>
<keywords>
FTP
PORT
STOR
multi
EPRT refused
NODATACONN421
</keywords>
</info>
# Server-side
<reply>
<data>
</data>
<servercmd>
NODATACONN421
REPLY EPRT 500 we don't like EPRT now
</servercmd>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<tool>
lib591
</tool>
<name>
FTP multi PORT and 421 on upload
</name>
<command>
ftp://%HOSTIP:%FTPPORT/path/592 %FTPTIME2 log/upload592
</command>
<file name="log/upload592">
Moooooooooooo for 592
upload this
</file>
</client>
# Verify data after the test has been "shot"
<verify>
# Strip off parts of the PORT and EPRT commands that might differ
<strippart>
s/^PORT (.*)/PORT/
s/^EPRT \|1\|(.*)/EPRT \|1\|/
</strippart>
# a 421 response must prevent further commands from being sent
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD path
EPRT |1|
PORT
TYPE I
STOR 592
</protocol>
# 28 == CURLE_OPERATION_TIMEDOUT
<errorcode>
28
</errorcode>
<upload>
</upload>
</verify>
</testcase>