aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/ftpserver.pl24
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 ($@) {