diff options
author | Steve Holme <steve_holme@hotmail.com> | 2013-09-11 20:26:43 +0100 |
---|---|---|
committer | Steve Holme <steve_holme@hotmail.com> | 2013-09-11 20:27:13 +0100 |
commit | 7fd84b14d219b1ea3aef717bc02faf00b68e795a (patch) | |
tree | 6cc4164f9e8b2f13409a335e96eef6b915722fba | |
parent | f2403140f984ab0ef030fd3d172536b91a9f4242 (diff) |
ftpserver.pl: Added support for UID command
-rwxr-xr-x | tests/ftpserver.pl | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index beca82956..a74a84a4a 100755 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -600,6 +600,7 @@ sub protocolsetup { 'SELECT' => \&SELECT_imap, 'STATUS' => \&STATUS_imap, 'STORE' => \&STORE_imap + 'UID' => \&UID_imap, ); %displaytext = ( 'LOGIN' => ' OK LOGIN completed', @@ -1292,6 +1293,44 @@ sub COPY_imap { return 0; } +sub UID_imap { + my ($args) = @_; + my ($command) = split(/ /, $args, 1); + fix_imap_params($command, $mailbox); + + logmsg "UID_imap got $args\n"; + + if ($selected eq "") { + sendcontrol "$cmdid BAD Command received in Invalid state\r\n"; + } + elsif (($command ne "COPY") && ($command ne "FETCH") && + ($command ne "STORE") && ($command ne "SEARCH")) { + sendcontrol "$cmdid BAD Command Argument\r\n"; + } + else { + my $testno = $selected; + + $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 $command completed\r\n"; + } + + return 0; +} + sub LOGOUT_imap { sendcontrol "* BYE cURL IMAP server signing off\r\n"; sendcontrol "$cmdid OK LOGOUT completed\r\n"; |