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 = ; + my $input; + my $size; - if($input !~ /^CNCT/) { - # we wait for a connected client - next; - } - logmsg "====> Client DATA connect\n"; + 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 ($@) {