ftpserver.pl: Added capability prerequisite for extended POP3 commands
authorSteve Holme <steve_holme@hotmail.com>
Sat, 14 Sep 2013 14:02:34 +0000 (15:02 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sat, 14 Sep 2013 14:04:26 +0000 (15:04 +0100)
tests/ftpserver.pl

index 6f099b1..075e02e 100755 (executable)
@@ -1556,16 +1556,21 @@ sub UIDL_pop3 {
         "3 4\r\n", # Note that UID 3 is a simulated "deleted" message
     );
 
-    logmsg "retrieve a message UID list\n";
+    if (!grep /^UIDL$/, @capabilities) {
+        sendcontrol "-ERR Unrecognized command\r\n";
+    }
+    else {
+        logmsg "retrieve a message UID list\n";
 
-    sendcontrol "+OK Listing starts\r\n";
+        sendcontrol "+OK Listing starts\r\n";
 
-    for my $d (@data) {
-        sendcontrol $d;
-    }
+        for my $d (@data) {
+            sendcontrol $d;
+        }
 
-    # End with the magic 3-byte end of listing marker
-    sendcontrol ".\r\n";
+        # End with the magic 3-byte end of listing marker
+        sendcontrol ".\r\n";
+    }
 
     return 0;
 }
@@ -1576,7 +1581,10 @@ sub TOP_pop3 {
 
     logmsg "TOP_pop3 got $args\n";
 
-    if (($msg eq "") || ($lines eq "")) {
+    if (!grep /^TOP$/, @capabilities) {
+        sendcontrol "-ERR Unrecognized command\r\n";
+    }
+    elsif ((!$msg) || (!$lines)) {
         sendcontrol "-ERR Protocol error\r\n";
     }
     else {