test104 test113 test122 test18 test23 test301 test402 test9 \
test105 test114 test123 test19 test24 test302 test43 \
test106 test115 test124 test190 test25 test303 test44 \
-test107 test116 test125 test2 test26 test33 test45
+test107 test116 test125 test2 test26 test33 test45 test126
--- /dev/null
+# Server-side
+<reply>
+<data>
+this is file contents
+</data>
+</reply>
+
+# Client-side
+<client>
+ <name>
+FTP download with multiple replies at once in RETR
+ </name>
+ <command>
+ftp://%HOSTIP:%FTPPORT/blalbla/lululul/126
+</command>
+<file name="log/ftpserver.cmd">
+RETRWEIRDO
+</file>
+</test>
+
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+USER anonymous\r
+PASS curl_by_daniel@haxx.se\r
+PWD\r
+CWD blalbla/lululul\r
+EPSV\r
+TYPE I\r
+SIZE 126\r
+RETR 126\r
+</protocol>
+</verify>
sub ftpmsg { print INPUT @_; }
my $verbose=0; # set to 1 for debugging
+my $retrweirdo=0;
my $port = 8921; # just a default
do {
logmsg "REST $rest was removed from size, makes $size left\n";
$rest = 0; # reset REST offset again
}
- print "150 Binary data connection for $testno () ($size bytes).\r\n";
- logmsg "150 Binary data connection for $testno ($size bytes).\n";
-
- for(@data) {
- my $send = $_;
- print SOCK $send;
+ if($retrweirdo) {
+ print "150 Binary data connection for $testno () ($size bytes).\r\n",
+ "226 File transfer complete\r\n";
+ logmsg "150+226 in one shot!\n";
+
+ for(@data) {
+ my $send = $_;
+ print SOCK $send;
+ }
+ close(SOCK);
+ $retrweirdo=0; # switch off the weirdo again!
}
- close(SOCK);
+ else {
+ print "150 Binary data connection for $testno () ($size bytes).\r\n";
+ logmsg "150 Binary data connection for $testno ($size bytes).\n";
- print "226 File transfer complete\r\n";
+ for(@data) {
+ my $send = $_;
+ print SOCK $send;
+ }
+ close(SOCK);
+
+ print "226 File transfer complete\r\n";
+ }
}
else {
print "550 $testno: No such file or directory.\r\n";
elsif($_ =~ /DELAY ([A-Z]+) (\d*)/) {
$delayreply{$1}=$2;
}
+ elsif($_ =~ /RETRWEIRDO/) {
+ print "instructed to use RETRWEIRDO\n";
+ $retrweirdo=1;
+ }
}
close(CUSTOM);
}