| <testcase> | 
 | <info> | 
 | <keywords> | 
 | FTP | 
 | PORT | 
 | RETR | 
 | NODATACONN150 | 
 | flaky | 
 | </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\|(.*)/EPRT \|1\|/ | 
 | </strippart> | 
 |  | 
 | # This test doesn't 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> | 
 | USER anonymous
 | 
 | PASS ftp@example.com
 | 
 | PWD
 | 
 | EPRT |1| | 
 | TYPE I
 | 
 | SIZE %TESTNUMBER
 | 
 | RETR %TESTNUMBER
 | 
 | </protocol> | 
 | <errorcode> | 
 | 28 | 
 | </errorcode> | 
 | </verify> | 
 | </testcase> |