diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/ftpserver.pl | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index ab514e119..beca82956 100755 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -593,6 +593,7 @@ sub protocolsetup { 'EXPUNGE' => \&EXPUNGE_imap, 'FETCH' => \&FETCH_imap, 'LIST' => \&LIST_imap, + 'LSUB' => \&LSUB_imap, 'LOGOUT' => \&LOGOUT_imap, 'RENAME' => \&RENAME_imap, 'SEARCH' => \&SEARCH_imap, @@ -1041,6 +1042,40 @@ sub LIST_imap { return 0; } +sub LSUB_imap { + my ($args) = @_; + my ($reference, $mailbox) = split(/ /, $args, 2); + fix_imap_params($reference, $mailbox); + + logmsg "LSUB_imap got $args\n"; + + if ($reference eq "") { + sendcontrol "$cmdid BAD Command Argument\r\n"; + } + else { + my $testno = $reference; + + $testno =~ s/^([^0-9]*)//; + my $testpart = ""; + if ($testno > 10000) { + $testpart = $testno % 10000; + $testno = int($testno / 10000); + } + + loadtest("$srcdir/data/test$testno"); + + my @data = getpart("reply", "data$testpart"); + + for my $d (@data) { + sendcontrol $d; + } + + sendcontrol "$cmdid OK LSUB Completed\r\n"; + } + + return 0; +} + sub EXAMINE_imap { my ($testno) = @_; fix_imap_params($testno); |