From f49276bfcbfa2e8e73bb01c7f7103126de1c1da2 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Sun, 10 Nov 2013 10:08:32 +0000 Subject: ftpserver.pl: Fixed processing of IMAP authentication strings --- tests/ftpserver.pl | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index b6ed5839a..410bbd4ec 100755 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -3049,15 +3049,22 @@ while(1) { my $FTPARG; if($proto eq "imap") { # IMAP is different with its identifier first on the command line - unless(($full =~ /^([^ ]+) ([^ ]+) (.*)/) || - ($full =~ /^([^ ]+) ([^ ]+)/)) { + if(($full =~ /^([^ ]+) ([^ ]+) (.*)/) || + ($full =~ /^([^ ]+) ([^ ]+)/)) { + $cmdid=$1; # set the global variable + $FTPCMD=$2; + $FTPARG=$3; + } + # IMAP long "commands" are base64 authentication data + elsif($full =~ /^[A-Z0-9+\/]*={0,2}$/i) { + # Command id has already been set + $FTPCMD=$full; + $FTPARG=""; + } + else { sendcontrol "$1 '$full': command not understood.\r\n"; last; } - - $cmdid=$1; # set the global variable - $FTPCMD=$2; - $FTPARG=$3; } elsif($full =~ /^([A-Z]{3,4})(\s(.*))?$/i) { $FTPCMD=$1; -- cgit v1.2.3