<?xml version="1.0" encoding="US-ASCII"?>
<testcase>
<info>
<keywords>
FTP
PORT
RETR
NODATACONN150
timeout
FAILURE
flaky
timing-dependent
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
some bytes
</data>
<servercmd>
NODATACONN150
</servercmd>
</reply>

# Client-side
<client>
<server>
ftp
</server>
<name>
FTP PORT download, no data conn and no transient negative reply
</name>
<command>
--max-time %FTPTIME2 ftp://%HOSTIP:%FTPPORT/%TESTNUMBER -P -
</command>

</client>

# Verify data after the test has been "shot"
<verify>
<strippart>
s/^EPRT \|1\|(\S*)/EPRT \|1\|/
</strippart>

# This test does not send a QUIT because the main state machine in multi.c
# triggers the timeout and sets the CURLE_OPERATION_TIMEDOUT error (28) for
# which the FTP disconnect code generically has to assume could mean the
# control the connection and thus it cannot send any command.
<protocol crlf="yes">
USER anonymous
PASS ftp@example.com
PWD
EPRT |1|
TYPE I
SIZE %TESTNUMBER
RETR %TESTNUMBER
</protocol>
# 28 is CURLE_OPERATION_TIMEDOUT
<errorcode>
28
</errorcode>
</verify>
</testcase>
