aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtests/ftpserver.pl19
1 files 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;