diff options
-rwxr-xr-x | tests/ftpserver.pl | 87 |
1 files changed, 48 insertions, 39 deletions
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index 603302eda..1c1512bf7 100755 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -693,50 +693,65 @@ my $smtp_type; sub EHLO_smtp { my ($client) = @_; - my @data; - # TODO: Get the IP address of the client connection to use in the EHLO - # response when the client doesn't specify one but for now use 127.0.0.1 - if (!$client) { - $client = "[127.0.0.1]"; + 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 { + my @data; - # Set the server type to ESMTP - $smtp_type = "ESMTP"; + # TODO: Get the IP address of the client connection to use in the + # EHLO response when the client doesn't specify one but for now use + # 127.0.0.1 + if (!$client) { + $client = "[127.0.0.1]"; + } - # Calculate the EHLO response - push @data, "$smtp_type pingpong test server Hello $client"; + # Set the server type to ESMTP + $smtp_type = "ESMTP"; - if((@capabilities) || (@auth_mechs)) { - my $mechs; + # Calculate the EHLO response + push @data, "$smtp_type pingpong test server Hello $client"; - for my $c (@capabilities) { - push @data, $c; - } + if((@capabilities) || (@auth_mechs)) { + my $mechs; - for my $am (@auth_mechs) { - if(!$mechs) { - $mechs = "$am"; + for my $c (@capabilities) { + push @data, $c; } - else { - $mechs .= " $am"; + + for my $am (@auth_mechs) { + if(!$mechs) { + $mechs = "$am"; + } + else { + $mechs .= " $am"; + } } - } - if($mechs) { - push @data, "AUTH $mechs"; + if($mechs) { + push @data, "AUTH $mechs"; + } } - } - # Send the EHLO response - for (my $i = 0; $i < @data; $i++) { - my $d = $data[$i]; + # Send the EHLO response + for (my $i = 0; $i < @data; $i++) { + my $d = $data[$i]; - if($i < @data - 1) { - sendcontrol "250-$d\r\n"; - } - else { - sendcontrol "250 $d\r\n"; + if($i < @data - 1) { + sendcontrol "250-$d\r\n"; + } + else { + sendcontrol "250 $d\r\n"; + } } } @@ -808,14 +823,8 @@ sub DATA_smtp { return; # failure } - if($testno eq "<verifiedserver>") { - sendcontrol "554 WE ROOLZ: $$\r\n"; - return 0; # don't wait for data now - } - else { - $testno =~ s/^([^0-9]*)([0-9]+).*/$2/; - sendcontrol "354 Show me the mail\r\n"; - } + $testno =~ s/^([^0-9]*)([0-9]+).*/$2/; + sendcontrol "354 Show me the mail\r\n"; logmsg "===> rcpt $testno was $smtp_rcpt\n"; |