ftpserver.pl: Added cURL SMTP server detection to HELO command handler

As curl will send a HELO command after an negative EHLO response, added
the same detection from commit b07709f741 to the HELO handler to
ensure the test server is identified correctly and an upload isn't
performed.
This commit is contained in:
Steve Holme 2013-09-22 13:21:15 +01:00
parent fd8dc21fd0
commit 9d4a8c7936
1 changed files with 31 additions and 18 deletions

View File

@ -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";