mirror of
https://github.com/curl/curl.git
synced 2026-08-26 01:13:37 +03:00
pop3: Fixed APOP being determined by CAPA response rather than by timestamp
This commit replaces that of 9f260b5d66 because according to RFC-2449,
section 6, there is no APOP capability "...even though APOP is an
optional command in [POP3]. Clients discover server support of APOP by
the presence in the greeting banner of an initial challenge enclosed in
angle brackets."
This commit is contained in:
parent
82bf8edff3
commit
6f2d5f0562
3 changed files with 32 additions and 27 deletions
|
|
@ -1707,32 +1707,39 @@ my $username;
|
|||
|
||||
sub CAPA_pop3 {
|
||||
my ($testno) = @_;
|
||||
my @list = ();
|
||||
my $mechs;
|
||||
|
||||
if((!@capabilities) && (!@auth_mechs)) {
|
||||
# Calculate the capability list based on the specified capabilities
|
||||
# (except APOP) and any authentication mechanisms
|
||||
for my $c (@capabilities) {
|
||||
push @list, "$c\r\n" unless $c eq "APOP";
|
||||
}
|
||||
|
||||
for my $am (@auth_mechs) {
|
||||
if(!$mechs) {
|
||||
$mechs = "$am";
|
||||
}
|
||||
else {
|
||||
$mechs .= " $am";
|
||||
}
|
||||
}
|
||||
|
||||
if($mechs) {
|
||||
push @list, "SASL $mechs\r\n";
|
||||
}
|
||||
|
||||
if(!@list) {
|
||||
sendcontrol "-ERR Unrecognized command\r\n";
|
||||
}
|
||||
else {
|
||||
my @data = ();
|
||||
my $mechs;
|
||||
|
||||
# Calculate the CAPA response
|
||||
push @data, "+OK List of capabilities follows\r\n";
|
||||
|
||||
for my $c (@capabilities) {
|
||||
push @data, "$c\r\n";
|
||||
}
|
||||
|
||||
for my $am (@auth_mechs) {
|
||||
if(!$mechs) {
|
||||
$mechs = "$am";
|
||||
}
|
||||
else {
|
||||
$mechs .= " $am";
|
||||
}
|
||||
}
|
||||
|
||||
if($mechs) {
|
||||
push @data, "SASL $mechs\r\n";
|
||||
for my $l (@list) {
|
||||
push @data, "$l\r\n";
|
||||
}
|
||||
|
||||
push @data, "IMPLEMENTATION POP3 pingpong test server\r\n";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue