Commit 7fd84b14 authored by Steve Holme's avatar Steve Holme
Browse files

ftpserver.pl: Added support for UID command

parent f2403140
Loading
Loading
Loading
Loading
+39 −0
Original line number Diff line number Diff line
@@ -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";