aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/ftpserver.pl22
1 files changed, 20 insertions, 2 deletions
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl
index 52092337d..7a2ffe529 100644
--- a/tests/ftpserver.pl
+++ b/tests/ftpserver.pl
@@ -207,6 +207,15 @@ sub sockfilt {
}
+sub sockfiltsecondary {
+ my $l;
+ foreach $l (@_) {
+ printf DWRITE "DATA\n%04x\n", length($l);
+ print DWRITE $l;
+ }
+}
+
+
# Send data to the client on the control stream, which happens to be plain
# stdout.
@@ -237,8 +246,17 @@ sub sendcontrol {
sub senddata {
my $l;
foreach $l (@_) {
- printf DWRITE "DATA\n%04x\n", length($l);
- print DWRITE $l;
+ if(!$controldelay) {
+ # spit it all out at once
+ sockfiltsecondary $l;
+ }
+ else {
+ # pause between each byte
+ for (split(//,$l)) {
+ sockfiltsecondary $_;
+ select(undef, undef, undef, 0.01);
+ }
+ }
}
}