]> granicus.if.org Git - curl/commitdiff
ftpserver.pl: Corrected flawed logic in commit 1ca6ed7b75cad0
authorSteve Holme <steve_holme@hotmail.com>
Sat, 31 Aug 2013 10:10:20 +0000 (11:10 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sat, 31 Aug 2013 10:10:20 +0000 (11:10 +0100)
tests/ftpserver.pl

index 7a52f962f36616d6b185b544e0dc667a303b83c3..489c3f14121572bc380ffb3b47fb17857e328da1 100755 (executable)
@@ -816,54 +816,57 @@ sub SELECT_imap {
 sub FETCH_imap {
     my ($args) = @_;
     my ($uid, $how) = split(/ /, $args, 2);
-    my @data;
-    my $size;
     fix_imap_params($uid, $how);
 
     logmsg "FETCH_imap got $args\n";
 
-    if($selected eq "verifiedserver") {
-        # this is the secret command that verifies that this actually is
-        # the curl test server
-        my $response = "WE ROOLZ: $$\r\n";
-        if($verbose) {
-            print STDERR "FTPD: We returned proof we are the test server\n";
-        }
-        $data[0] = $response;
-        logmsg "return proof we are we\n";
-    }
-    elsif ($selected eq "") {
+    if ($selected eq "") {
         sendcontrol "$cmdid BAD Command received in Invalid state\r\n";
     }
     else {
-        logmsg "retrieve a mail\n";
-
-        my $testno = $selected;
-        $testno =~ s/^([^0-9]*)//;
-        my $testpart = "";
-        if ($testno > 10000) {
-            $testpart = $testno % 10000;
-            $testno = int($testno / 10000);
+        my @data;
+        my $size;
+
+        if($selected eq "verifiedserver") {
+            # this is the secret command that verifies that this actually is
+            # the curl test server
+            my $response = "WE ROOLZ: $$\r\n";
+            if($verbose) {
+                print STDERR "FTPD: We returned proof we are the test server\n";
+            }
+            $data[0] = $response;
+            logmsg "return proof we are we\n";
         }
+        else {
+            logmsg "retrieve a mail\n";
+
+            my $testno = $selected;
+            $testno =~ s/^([^0-9]*)//;
+            my $testpart = "";
+            if ($testno > 10000) {
+                $testpart = $testno % 10000;
+                $testno = int($testno / 10000);
+            }
 
-        # send mail content
-        loadtest("$srcdir/data/test$testno");
+            # send mail content
+            loadtest("$srcdir/data/test$testno");
 
-        @data = getpart("reply", "data$testpart");
-    }
+            @data = getpart("reply", "data$testpart");
+        }
 
-    for (@data) {
-        $size += length($_);
-    }
+        for (@data) {
+            $size += length($_);
+        }
 
-    sendcontrol "* $uid FETCH ($how {$size}\r\n";
+        sendcontrol "* $uid FETCH ($how {$size}\r\n";
 
-    for my $d (@data) {
-        sendcontrol $d;
-    }
+        for my $d (@data) {
+            sendcontrol $d;
+        }
 
-    sendcontrol ")\r\n";
-    sendcontrol "$cmdid OK FETCH completed\r\n";
+        sendcontrol ")\r\n";
+        sendcontrol "$cmdid OK FETCH completed\r\n";
+    }
 
     return 0;
 }
@@ -973,7 +976,10 @@ sub LIST_imap {
 
     logmsg "LIST_imap got $args\n";
 
-    if ($reference eq "verifiedserver") {
+    if ($reference eq "") {
+        sendcontrol "$cmdid BAD Command Argument\r\n";
+    }
+    elsif ($reference eq "verifiedserver") {
         # this is the secret command that verifies that this actually is
         # the curl test server
         sendcontrol "* LIST () \"/\" \"WE ROOLZ: $$\"\r\n";
@@ -985,9 +991,6 @@ sub LIST_imap {
 
         logmsg "return proof we are we\n";
     }
-    elsif ($reference eq "") {
-        sendcontrol "$cmdid BAD Command Argument\r\n";
-    }
     else {
         my $testno = $reference;