summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtests/ftpserver.pl42
1 files changed, 32 insertions, 10 deletions
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";