ftpserver.pl: Added support for LSUB command
authorSteve Holme <steve_holme@hotmail.com>
Wed, 11 Sep 2013 19:19:09 +0000 (20:19 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Wed, 11 Sep 2013 19:25:48 +0000 (20:25 +0100)
tests/ftpserver.pl

index ab514e1..beca829 100755 (executable)
@@ -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);