<testcase>
# Warning: if this test fails to start the SSH server, check that none of
# the user's shell profiles sends output to stdout of a non-interactive shell.
<info>
<keywords>
FTP
PASV
RETR
multi
SOCKS4
</keywords>
</info>
# Server-side
<reply>
<data>
data
    to
      see
that FTP
works
  so does it?
</data>

</reply>

# Client-side
<client>
<server>
ftp
socks4
</server>
<tool>
lib564
</tool>
 <name>
FTP RETR a file over a SOCKS proxy using the multi interface
 </name>
<command>
ftp://%HOSTIP:%FTPPORT/path/564 %HOSTIP:%SOCKSPORT
</command>
<features>
proxy
</features>
</client>

# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS ftp@example.com
PWD
CWD path
EPSV
TYPE I
SIZE 564
RETR 564
QUIT
</protocol>
<stdout>
data
    to
      see
that FTP
works
  so does it?
</stdout>
</verify>
</testcase>
