make the ftp server support reply/servercmd, and make SLOWDOWN work, and
authorDaniel Stenberg <daniel@haxx.se>
Thu, 14 Apr 2005 22:52:08 +0000 (22:52 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 14 Apr 2005 22:52:08 +0000 (22:52 +0000)
update the docs accordingly

tests/FILEFORMAT
tests/ftpserver.pl
tests/runtests.pl

index 30f539b..1225a36 100644 (file)
@@ -57,18 +57,22 @@ number to return on a ftp SIZE command (set to -1 to make this command fail)
 what to send back if the client sends a (FTP) MDTM command, set to -1 to
 have it return that the file doesn't exist
 </mdtm>
-<servercmd>
-special purpose server-command to control its behavior *before* the
-reply is sent:
-
-auth_required - server fails if no auth is provided
-</servercmd>
 <postcmd>
 special purpose server-command to control its behavior *after* the
 reply is sent
 </postcmd>
 <servercmd>
- equivalent to <cmd> but for HTTP, one specified command is supported:
+Special-commands for the server.
+For FTP, these are supported:
+REPLY
+COUNT
+DELAY
+RETRWEIRDO
+RETRNOSIZE
+NOSAVE
+SLOWDOWN
+
+For HTTP, one specified command is supported:
  "auth_required" - if this is set and a POST/PUT is made without auth, the
  server will NOT wait for the full request body to get sent
 </servercmd>
index 7358ca2..e51bfee 100644 (file)
@@ -118,7 +118,7 @@ sub sendcontrol {
 
         for(@a) {
             print $_;
-            select(undef, undef, undef, 0.1);
+            select(undef, undef, undef, 0.02);
         }
     }
 
@@ -544,6 +544,7 @@ sub customize {
     undef %customreply;
 
     $nosave = 0; # default is to save as normal
+    $controldelay = 0; # default is no delaying the responses
 
     open(CUSTOM, "<log/ftpserver.cmd") ||
         return 1;
@@ -565,6 +566,10 @@ sub customize {
             $delayreply{$1}=$2;
             logmsg "FTPD: delay reply for $1 with $2 seconds\n";
         }
+        elsif($_ =~ /SLOWDOWN/) {
+            $controldelay=1;
+            logmsg "FTPD: send response with 0.1 sec delay between each byte\n";
+        }
         elsif($_ =~ /RETRWEIRDO/) {
             logmsg "FTPD: instructed to use RETRWEIRDO\n";
             $retrweirdo=1;
index 4c71f13..2210134 100755 (executable)
@@ -1067,8 +1067,8 @@ sub singletest {
     # if this section exists, we verify upload
     my @upload = getpart("verify", "upload");
 
-    # if this section exists, it is FTP server instructions:
-    my @ftpservercmd = getpart("server", "instruction");
+    # if this section exists, it might be FTP server instructions:
+    my @ftpservercmd = getpart("reply", "servercmd");
 
     my $CURLOUT="$LOGDIR/curl$testnum.out"; # curl output if not stdout