diff options
-rw-r--r-- | tests/ftpserver.pl | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index 3aed88b59..dd8383fa6 100644 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -585,17 +585,23 @@ sub PASV_command { eval { local $SIG{ALRM} = sub { die "alarm\n" }; - alarm 5; # assume swift operations + # assume swift operations unless explicitly slow + alarm ($controldelay?20:5); # Wait for 'CNCT' - my $input = <DREAD>; - - if($input !~ /^CNCT/) { - # we wait for a connected client - next; - } - logmsg "====> Client DATA connect\n"; - + my $input; + my $size; + + while(sysread(DREAD, $input, $size)) { + + if($input !~ /^CNCT/) { + # we wait for a connected client + logmsg "Odd, we got $input from client\n"; + next; + } + logmsg "====> Client DATA connect\n"; + last; + } alarm 0; }; if ($@) { |