]> granicus.if.org Git - curl/commitdiff
ftpserver.pl: Reworked custom reply handling code
authorSteve Holme <steve_holme@hotmail.com>
Thu, 7 Nov 2013 20:12:51 +0000 (20:12 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 10 Nov 2013 15:18:04 +0000 (15:18 +0000)
1) To fix issues with IMAP custom replies
2) So initial space is not required in IMAP display text
3) To be more readable and understandable

tests/ftpserver.pl

index 4f0e9f20cb14f40ba2434d01b1f84033b21bc406..96cfdfe9852e67c796f4fd90675fc7a67a37e9cb 100755 (executable)
@@ -3108,34 +3108,33 @@ while(1) {
             }
         }
 
-        my $text;
-        $text = $customreply{$FTPCMD};
-        my $fake = $text;
+        my $check = 1; # no response yet
 
+        # See if there is a custom reply for our command
+        my $text = $customreply{$FTPCMD};
         if($text && ($text ne "")) {
             if($customcount{$FTPCMD} && (!--$customcount{$FTPCMD})) {
                 # used enough number of times, now blank the customreply
                 $customreply{$FTPCMD}="";
             }
+
+            sendcontrol "$text\r\n";
+            $check = 0;
         }
         else {
+            # See if there is any display text for our command
             $text = $displaytext{$FTPCMD};
-        }
+            if($text && ($text ne "")) {
+                if($proto eq 'imap') {
+                    sendcontrol "$cmdid $text\r\n";
+                }
+                else {
+                    sendcontrol "$text\r\n";
+                }
 
-        my $check;
-        if($text && ($text ne "")) {
-            if(($cmdid) && ($cmdid ne "") && ($fake) && ($fake ne "")) {
-                sendcontrol "$cmdid$text\r\n";
+                $check = 0;
             }
-            else {
-                sendcontrol "$text\r\n";
-            }
-        }
-        else {
-            $check=1; # no response yet
-        }
 
-        unless($fake && ($fake ne "")) {
             # only perform this if we're not faking a reply
             my $func = $commandfunc{$FTPCMD};
             if($func) {