ftpserver.pl: Added mailbox check to IMAP SELECT handler
authorSteve Holme <steve_holme@hotmail.com>
Sat, 14 Sep 2013 23:34:58 +0000 (00:34 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 15 Sep 2013 08:00:13 +0000 (09:00 +0100)
tests/ftpserver.pl

index 3fffcd7..c1df824 100755 (executable)
@@ -844,22 +844,27 @@ sub LOGIN_imap {
 }
 
 sub SELECT_imap {
-    my ($testno) = @_;
-    fix_imap_params($testno);
-
-    logmsg "SELECT_imap got test $testno\n";
+    my ($mailbox) = @_;
+    fix_imap_params($mailbox);
 
-    # Example from RFC 3501, 6.3.1. SELECT Command
-    sendcontrol "* 172 EXISTS\r\n";
-    sendcontrol "* 1 RECENT\r\n";
-    sendcontrol "* OK [UNSEEN 12] Message 12 is first unseen\r\n";
-    sendcontrol "* OK [UIDVALIDITY 3857529045] UIDs valid\r\n";
-    sendcontrol "* OK [UIDNEXT 4392] Predicted next UID\r\n";
-    sendcontrol "* FLAGS (\\Answered \\Flagged \\Deleted \\Seen \\Draft)\r\n";
-    sendcontrol "* OK [PERMANENTFLAGS (\\Deleted \\Seen \\*)] Limited\r\n";
-    sendcontrol "$cmdid OK [READ-WRITE] SELECT completed\r\n";
+    logmsg "SELECT_imap got test $mailbox\n";
 
-    $selected = $testno;
+    if($mailbox eq "") {
+        sendcontrol "$cmdid BAD Command Argument\r\n";
+    }
+    else {
+        # Example from RFC 3501, 6.3.1. SELECT Command
+        sendcontrol "* 172 EXISTS\r\n";
+        sendcontrol "* 1 RECENT\r\n";
+        sendcontrol "* OK [UNSEEN 12] Message 12 is first unseen\r\n";
+        sendcontrol "* OK [UIDVALIDITY 3857529045] UIDs valid\r\n";
+        sendcontrol "* OK [UIDNEXT 4392] Predicted next UID\r\n";
+        sendcontrol "* FLAGS (\\Answered \\Flagged \\Deleted \\Seen \\Draft)\r\n";
+        sendcontrol "* OK [PERMANENTFLAGS (\\Deleted \\Seen \\*)] Limited\r\n";
+        sendcontrol "$cmdid OK [READ-WRITE] SELECT completed\r\n";
+
+        $selected = $mailbox;
+    }
 
     return 0;
 }