]> granicus.if.org Git - curl/commitdiff
ftpserver.pl: Added the ability to send custom full text replies
authorSteve Holme <steve_holme@hotmail.com>
Sun, 22 Dec 2013 19:10:43 +0000 (19:10 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 22 Dec 2013 19:36:07 +0000 (19:36 +0000)
tests/ftpserver.pl

index c4cd7cf0e662ef52f234cef685ebe78d44dad049..3a4a0795c6eb2985b9a876196518b6d18fe869bf 100755 (executable)
@@ -3251,36 +3251,45 @@ while(1) {
 
         my $check = 1; # no response yet
 
-        # See if there is a custom reply for our command
-        my $text = $commandreply{$FTPCMD};
+        # See if there is a custom reply for the full text
+        my $fulltext = $FTPCMD . " " . $FTPARG;
+        my $text = $fulltextreply{$fulltext};
         if($text && ($text ne "")) {
-            if($customcount{$FTPCMD} && (!--$customcount{$FTPCMD})) {
-                # used enough times so blank the custom command reply
-                $commandreply{$FTPCMD}="";
-            }
-
             sendcontrol "$text\r\n";
             $check = 0;
         }
         else {
-            # See if there is any display text for our command
-            $text = $displaytext{$FTPCMD};
+            # See if there is a custom reply for the command
+            $text = $commandreply{$FTPCMD};
             if($text && ($text ne "")) {
-                if($proto eq 'imap') {
-                    sendcontrol "$cmdid $text\r\n";
-                }
-                else {
-                    sendcontrol "$text\r\n";
+                if($customcount{$FTPCMD} && (!--$customcount{$FTPCMD})) {
+                    # used enough times so blank the custom command reply
+                    $commandreply{$FTPCMD}="";
                 }
 
+                sendcontrol "$text\r\n";
                 $check = 0;
             }
+            else {
+                # See if there is any display text for the command
+                $text = $displaytext{$FTPCMD};
+                if($text && ($text ne "")) {
+                    if($proto eq 'imap') {
+                        sendcontrol "$cmdid $text\r\n";
+                    }
+                    else {
+                        sendcontrol "$text\r\n";
+                    }
 
-            # only perform this if we're not faking a reply
-            my $func = $commandfunc{$FTPCMD};
-            if($func) {
-                &$func($FTPARG, $FTPCMD);
-                $check=0; # taken care of
+                    $check = 0;
+                }
+
+                # only perform this if we're not faking a reply
+                my $func = $commandfunc{$FTPCMD};
+                if($func) {
+                    &$func($FTPARG, $FTPCMD);
+                    $check = 0;
+                }
             }
         }