aboutsummaryrefslogtreecommitdiff
path: root/tests/ftpserver.pl
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2013-09-11 20:19:09 +0100
committerSteve Holme <steve_holme@hotmail.com>2013-09-11 20:25:48 +0100
commitf2403140f984ab0ef030fd3d172536b91a9f4242 (patch)
tree7a32c4442133998f5da913b9ce578b169f6d9f1c /tests/ftpserver.pl
parentf3c9749a4031d6f08523e973b4367750714508a3 (diff)
ftpserver.pl: Added support for LSUB command
Diffstat (limited to 'tests/ftpserver.pl')
-rwxr-xr-xtests/ftpserver.pl35
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);