From e9cca79dd1d38f94fdecf7af4b1a8a5512207913 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Sun, 15 Sep 2013 00:34:58 +0100 Subject: [PATCH] ftpserver.pl: Added mailbox check to IMAP SELECT handler --- tests/ftpserver.pl | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index 3fffcd7..c1df824 100755 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -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; } -- 2.7.4