<testcase>
#
# 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.
#
<info>
<keywords>
FTP
PORT
STOR
multi
EPRT refused
NODATACONN150
</keywords>
</info>

# Server-side
<reply>
<data>
</data>
<servercmd>
NODATACONN150
REPLY EPRT 500 we don't like EPRT now
</servercmd>
</reply>

# Client-side
<client>
<server>
ftp
</server>
<tool>
lib591
</tool>
 <name>
FTP multi PORT upload, no data conn and no transient neg. reply
 </name>
 <command>
ftp://%HOSTIP:%FTPPORT/path/%TESTNUMBER %FTPTIME2 log/upload%TESTNUMBER
</command>
<file name="log/upload%TESTNUMBER">
Moooooooooooo for %TESTNUMBER
 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>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD path
EPRT |1|
PORT
TYPE I
STOR %TESTNUMBER
QUIT
</protocol>
<errorcode>
12
</errorcode>
<upload>
</upload>
</verify>
</testcase>
