]> granicus.if.org Git - curl/commitdiff
ftpserver.pl: Added cURL SMTP server detection to HELO command handler
authorSteve Holme <steve_holme@hotmail.com>
Sun, 22 Sep 2013 12:21:15 +0000 (13:21 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 22 Sep 2013 12:21:15 +0000 (13:21 +0100)
As curl will send a HELO command after an negative EHLO response, added
the same detection from commit b07709f7417c3e to the HELO handler to
ensure the test server is identified correctly and an upload isn't
performed.

tests/ftpserver.pl

index 36e47571ae7c49025ff59b88e92362e3974687e7..588f98d5d17f413726f62ebb98497f927359f795 100755 (executable)
@@ -758,6 +758,37 @@ sub EHLO_smtp {
     return 0;
 }
 
+sub HELO_smtp {
+    my ($client) = @_;
+
+    if($client eq "verifiedserver") {
+        # This is the secret command that verifies that this actually is
+        # the curl test server
+        sendcontrol "554 WE ROOLZ: $$\r\n";
+
+        if($verbose) {
+            print STDERR "FTPD: We returned proof we are the test server\n";
+        }
+
+        logmsg "return proof we are we\n";
+    }
+    else {
+        # TODO: Get the IP address of the client connection to use in the HELO
+        # response when the client doesn't specify one but for now use 127.0.0.1
+        if (!$client) {
+            $client = "[127.0.0.1]";
+        }
+
+        # Set the server type to SMTP
+        $smtp_type = "SMTP";
+
+        # Send the HELO response
+        sendcontrol "250 $smtp_type pingpong test server Hello $client\r\n";
+    }
+
+    return 0;
+}
+
 sub MAIL_smtp {
     my ($args) = @_;
 
@@ -895,24 +926,6 @@ sub DATA_smtp {
 
 }
 
-sub HELO_smtp {
-    my ($client) = @_;
-
-    # TODO: Get the IP address of the client connection to use in the HELO
-    # response when the client doesn't specify one but for now use 127.0.0.1
-    if (!$client) {
-        $client = "[127.0.0.1]";
-    }
-
-    # Set the server type to SMTP
-    $smtp_type = "SMTP";
-
-    # Send the HELO response
-    sendcontrol "250 $smtp_type pingpong test server Hello $client\r\n";
-
-    return 0;
-}
-
 sub QUIT_smtp {
     sendcontrol "221 cURL $smtp_type server signing off\r\n";