diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/FILEFORMAT | 1 | ||||
| -rw-r--r-- | tests/data/Makefile.am | 2 | ||||
| -rw-r--r-- | tests/data/test270 | 48 | ||||
| -rw-r--r-- | tests/ftpserver.pl | 11 | 
4 files changed, 60 insertions, 2 deletions
| diff --git a/tests/FILEFORMAT b/tests/FILEFORMAT index 57850fb64..e862f90c8 100644 --- a/tests/FILEFORMAT +++ b/tests/FILEFORMAT @@ -81,6 +81,7 @@ RETRWEIRDO  RETRNOSIZE  NOSAVE  SLOWDOWN +PASVBADIP  - makes PASV send back an illegal IP in its 227 response  For HTTP, one specified command is supported:   "auth_required" - if this is set and a POST/PUT is made without auth, the diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 416c2bb60..0b9e4a2ea 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -33,4 +33,4 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46	   \   test237 test238 test239 test243 test245 test246 test247 test248 test249   \   test250 test251 test252 test253 test254 test255 test521 test522 test523   \   test256 test257 test258 test259 test260 test261 test262 test263 test264   \ - test265 test266 test267 test268 test269 + test265 test266 test267 test268 test269 test270 diff --git a/tests/data/test270 b/tests/data/test270 new file mode 100644 index 000000000..6c47b559e --- /dev/null +++ b/tests/data/test270 @@ -0,0 +1,48 @@ +<info> +<keywords> +FTP +PASV +RETR +</keywords> +</info> +# Server-side +<reply> +<data> +data +    to +      see +that FTP +works +  so does it? +</data> +<servercmd> +PASVBADIP +</servercmd> +</reply> + +# Client-side +<client> +<server> +ftp +</server> + <name> +FTP RETR PASV --ftp-skip-pasv-ip + </name> + <command> +ftp://%HOSTIP:%FTPPORT/270 --ftp-skip-pasv-ip --disable-epsv +</command> +</client> + +# Verify data after the test has been "shot" +<verify> +<protocol> +USER anonymous
 +PASS curl_by_daniel@haxx.se
 +PWD
 +PASV
 +TYPE I
 +SIZE 270
 +RETR 270
 +QUIT
 +</protocol> +</verify> diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index e721bec2a..4c74cc1cf 100644 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -70,6 +70,7 @@ sub ftpmsg {  }  my $verbose=0; # set to 1 for debugging +my $pasvbadip=0;  my $retrweirdo=0;  my $retrnosize=0;  my $srcdir="."; @@ -564,7 +565,11 @@ sub PASV_command {      if($cmd ne "EPSV") {          # PASV reply -        sendcontrol sprintf("227 Entering Passive Mode (127,0,0,1,%d,%d)\n", +        my $p="127,0,0,1"; +        if($pasvbadip) { +            $p="1,2,3,4"; +        } +        sendcontrol sprintf("227 Entering Passive Mode ($p,%d,%d)\n",                              ($pasvport/256), ($pasvport%256));      }      else { @@ -703,6 +708,10 @@ sub customize {              logmsg "FTPD: instructed to use RETRNOSIZE\n";              $retrnosize=1;          } +        elsif($_ =~ /PASVBADIP/) { +            logmsg "FTPD: instructed to use PASVBADIP\n"; +            $pasvbadip=1; +        }          elsif($_ =~ /NOSAVE/) {              # don't actually store the file we upload - to be used when              # uploading insanely huge amounts | 
