ftpserver.pl: Added support for SMTP HELO command
authorSteve Holme <steve_holme@hotmail.com>
Sun, 15 Sep 2013 08:06:18 +0000 (09:06 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 15 Sep 2013 08:10:11 +0000 (09:10 +0100)
...and updated test902 as explicit HELO response is no longer required.

tests/data/test902
tests/ftpserver.pl

index 4da1b99..c61ab93 100644 (file)
@@ -12,7 +12,6 @@ RFC821
 <reply>
 <servercmd>
 REPLY EHLO 500 Command unrecognized
-REPLY HELO 250 Already old but still servicing...
 </servercmd>
 </reply>
 
index c1df824..15d00f0 100755 (executable)
@@ -623,6 +623,7 @@ sub protocolsetup {
     elsif($proto eq 'smtp') {
         %commandfunc = (
             'DATA' => \&DATA_smtp,
+            'HELO' => \&HELO_smtp,
             'RCPT' => \&RCPT_smtp,
         );
         %displaytext = (
@@ -772,6 +773,20 @@ sub RCPT_smtp {
     $smtp_rcpt = $args;
 }
 
+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]";
+    }
+
+    sendcontrol "250 SMTP pingpong test server Hello $client\r\n";
+
+    return 0;
+}
+
 # What was deleted by IMAP STORE / POP3 DELE commands
 my @deleted;