aboutsummaryrefslogtreecommitdiff
path: root/tests/ftpserver.pl
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2003-08-08 10:21:47 +0000
committerDaniel Stenberg <daniel@haxx.se>2003-08-08 10:21:47 +0000
commit6e3adc9b14bc37161fc89bc6df92181b9058666c (patch)
tree6e924e8d172b692e49bcca1f66519b21e4165a14 /tests/ftpserver.pl
parent7954eee6396965b424725c40c1dbf8020134a776 (diff)
Support COUNT in the control file, to set the number of times the custom
REPLY is to be sent back before getting blanked and reverted to the built-in action. Now, we can make CWD fail once and then succeed when retried.
Diffstat (limited to 'tests/ftpserver.pl')
-rw-r--r--tests/ftpserver.pl12
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl
index 76e947b0e..1a2e2b9bc 100644
--- a/tests/ftpserver.pl
+++ b/tests/ftpserver.pl
@@ -92,6 +92,7 @@ my %commandok = (
'SYST' => 'loggedin',
'SIZE' => 'loggedin|twosock',
'PWD' => 'loggedin|twosock',
+ 'MKD' => 'loggedin|twosock',
'QUIT' => 'loggedin|twosock',
'RNFR' => 'loggedin|twosock',
'RNTO' => 'loggedin|twosock',
@@ -118,6 +119,7 @@ my %displaytext = ('USER' => '331 We are happy you popped in!',
'SYST' => '215 UNIX Type: L8', # just fake something
'QUIT' => '221 bye bye baby', # just reply something
'PWD' => '257 "/nowhere/anywhere" is current directory',
+ 'MKD' => '257 Created your requested directory',
'REST' => '350 Yeah yeah we set it there for you',
'DELE' => '200 OK OK OK whatever you say',
'RNFR' => '350 Received your order. Please provide more',
@@ -428,6 +430,7 @@ sub PORT_command {
$SIG{CHLD} = \&REAPER;
my %customreply;
+my %customcount;
my %delayreply;
sub customize {
undef %customreply;
@@ -440,6 +443,11 @@ sub customize {
if($_ =~ /REPLY ([A-Z]+) (.*)/) {
$customreply{$1}=$2;
}
+ if($_ =~ /COUNT ([A-Z]+) (.*)/) {
+ # we blank the customreply for this command when having
+ # been used this number of times
+ $customcount{$1}=$2;
+ }
elsif($_ =~ /DELAY ([A-Z]+) (\d*)/) {
$delayreply{$1}=$2;
}
@@ -540,6 +548,10 @@ for ( $waitedpid = 0;
$text = $displaytext{$FTPCMD};
}
else {
+ if($customcount{$FTPCMD} && (!--$customcount{$FTPCMD})) {
+ # used enough number of times, now blank the customreply
+ $customreply{$FTPCMD}="";
+ }
logmsg "$FTPCMD made to send '$text'\n";
}
if($text) {