mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
ftpserver.pl: Added CAPA & AUTH directive support to the SMTP EHLO handler
This commit is contained in:
parent
00ee5c5cf1
commit
33c1f2876b
@ -127,10 +127,11 @@ PASVBADIP
|
||||
- makes PASV send back an illegal IP in its 227 response
|
||||
CAPA [capabilities]
|
||||
- Enables support for and specifies a list of space separated capabilities to
|
||||
return to the client for the IMAP CAPABILITY and POP3 CAPA commands
|
||||
return to the client for the IMAP CAPABILITY, POP3 CAPA and SMTP EHLO
|
||||
commands
|
||||
AUTH [mechanisms]
|
||||
- Enables support for SASL authentication and specifies a list of space
|
||||
separated mechanisms for IMAP and POP3
|
||||
separated mechanisms for IMAP, POP3 and SMTP
|
||||
|
||||
For HTTP/HTTPS:
|
||||
auth_required if this is set and a POST/PUT is made without auth, the
|
||||
|
@ -689,6 +689,55 @@ sub close_dataconn {
|
||||
# what set by "RCPT"
|
||||
my $smtp_rcpt;
|
||||
|
||||
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]";
|
||||
}
|
||||
|
||||
# Calculate the EHLO response
|
||||
push @data, "ESMTP pingpong test server Hello $client";
|
||||
|
||||
if((@capabilities) || (@auth_mechs)) {
|
||||
my $mechs;
|
||||
|
||||
for my $c (@capabilities) {
|
||||
push @data, $c;
|
||||
}
|
||||
|
||||
for my $am (@auth_mechs) {
|
||||
if(!$mechs) {
|
||||
$mechs = "$am";
|
||||
}
|
||||
else {
|
||||
$mechs .= " $am";
|
||||
}
|
||||
}
|
||||
|
||||
if($mechs) {
|
||||
push @data, "AUTH $mechs";
|
||||
}
|
||||
}
|
||||
|
||||
# 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";
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub DATA_smtp {
|
||||
my $testno;
|
||||
|
||||
@ -787,13 +836,6 @@ sub HELO_smtp {
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub EHLO_smtp {
|
||||
sendcontrol "250-SIZE\r\n";
|
||||
sendcontrol "250 Welcome visitor, stay a while staaaaaay forever\r\n";
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub QUIT_smtp {
|
||||
sendcontrol "200 byebye\r\n";
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user