From 23fabf8dea65157f02b4663fad102424776805a9 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Sat, 23 Nov 2013 22:14:34 +0000 Subject: ftpserver.pl: Reworked fix from commit 7a36b2abc06862 --- tests/ftpserver.pl | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) (limited to 'tests') diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index 38f0f3d3a..5c62c241b 100755 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -3167,9 +3167,14 @@ while(1) { $FTPCMD=$2; $FTPARG=$3; } + # IMAP authentication cancellation + elsif($full =~ /^\*$/) { + # Command id has already been set + $FTPCMD="*"; + $FTPARG=""; + } # IMAP long "commands" are base64 authentication data - elsif(($full =~ /^[A-Z0-9+\/]*={0,2}$/i) || - ($full == "*")) { + elsif($full =~ /^[A-Z0-9+\/]*={0,2}$/i) { # Command id has already been set $FTPCMD=$full; $FTPARG=""; @@ -3184,19 +3189,36 @@ while(1) { $FTPARG=$3; } elsif($proto eq "pop3") { + # POP3 authentication cancellation + if($full =~ /^\*$/) { + $FTPCMD="*"; + $FTPARG=""; + } # POP3 long "commands" are base64 authentication data - unless($full =~ /^[A-Z0-9+\/]*={0,2}$/i) { + elsif($full =~ /^[A-Z0-9+\/]*={0,2}$/i) { + $FTPCMD=$full; + $FTPARG=""; + } + else { sendcontrol "-ERR Unrecognized command\r\n"; last; } - - $FTPCMD=$full; - $FTPARG=""; } - elsif(($proto eq "smtp") && ($full =~ /^[A-Z0-9+\/]{0,512}={0,2}$/i)) { - # SMTP long "commands" are base64 authentication data. - $FTPCMD=$full; - $FTPARG=""; + elsif($proto eq "smtp") { + # SMTP authentication cancellation + if($full =~ /^\*$/) { + $FTPCMD="*"; + $FTPARG=""; + } + # SMTP long "commands" are base64 authentication data + elsif($full =~ /^[A-Z0-9+\/]{0,512}={0,2}$/i) { + $FTPCMD=$full; + $FTPARG=""; + } + else { + sendcontrol "500 Unrecognized command\r\n"; + last; + } } else { sendcontrol "500 Unrecognized command\r\n"; -- cgit v1.2.3