Commit 3bfa06c9 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

improved functionality for new timeout tests

parent f34573c8
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -23,6 +23,14 @@ if the data is sent but this is what should be checked afterwards
<size>
number to return on a ftp SIZE command
</size>
<cmd>
special purpose server-command to control its behavior *before* the
reply is sent
</cmd>
<postcmd>
special purpose server-command to control its behavior *after* the
reply is sent
</oistcmd>
</reply>

<client>
+10 −0
Original line number Diff line number Diff line
@@ -326,6 +326,7 @@ sub PORT_command {
$SIG{CHLD} = \&REAPER;

my %customreply;
my %delayreply;
sub customize {
    undef %customreply;
    open(CUSTOM, "<log/ftpserver.cmd") ||
@@ -337,6 +338,9 @@ sub customize {
        if($_ =~ /REPLY ([A-Z]+) (.*)/) {
            $customreply{$1}=$2;
        }
        elsif($_ =~ /DELAY ([A-Z]+) (\d*)/) {
            $delayreply{$1}=$2;
        }
    }
    close(CUSTOM);
}
@@ -416,6 +420,12 @@ for ( $waitedpid = 0;
            $state = $newstate;
        }

        my $delay = $delayreply{$FTPCMD};
        if($delay) {
            # just go sleep this many seconds!
            sleep($delay);
        }

        my $text;
        $text = $customreply{$FTPCMD};
        my $fake = $text;
+20 −0
Original line number Diff line number Diff line
@@ -50,6 +50,16 @@ sub REAPER {
    logmsg "reaped $waitedpid" . ($? ? " with exit $?" : '');
}

sub performcmd {
    my @cmd = @_;
    for(@cmd) {
        if($_ =~ /^ *wait *(\d*)/) {
            # instructed to sleep!
            sleep($1);
        }
    }
}

$SIG{CHLD} = \&REAPER;

for ( $waitedpid = 0;
@@ -164,6 +174,14 @@ for ( $waitedpid = 0;
                }

                loadtest("data/test$testnum");


                my @cmd = getpart("reply", "cmd");
                performcmd(@cmd);

                # flush data:
                $| = 1;

                # send a custom reply to the client
                my @data = getpart("reply", "data$part");
                for(@data) {
@@ -172,6 +190,8 @@ for ( $waitedpid = 0;
                        print STDERR "OUT: $_";
                    }
                }
                my @postcmd = getpart("reply", "postcmd");
                performcmd(@postcmd);
            }
        }
     #   print "Hello there, $name, it's now ", scalar localtime, "\r\n";