aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Net/IMAP/InterIMAP.pm
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2019-11-10 05:39:41 +0100
committerGuilhem Moulin <guilhem@fripost.org>2019-11-13 06:23:57 +0100
commita7c364bf90a4593cfbc7911b1b7536dc66b1c879 (patch)
tree8af995ed7f8db9bcbdad33e4601775a2b80eb7e4 /lib/Net/IMAP/InterIMAP.pm
parentb7514eeac609a7e99c66031f853f695bb82c990a (diff)
Test suite: add new tests for SSL/TLS.
SSL connections are accepted on TCP port 10993. Also, fix STARTTLS directive, broken since fba1c36…
Diffstat (limited to 'lib/Net/IMAP/InterIMAP.pm')
-rw-r--r--lib/Net/IMAP/InterIMAP.pm11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/Net/IMAP/InterIMAP.pm b/lib/Net/IMAP/InterIMAP.pm
index 77c1b14..b4d8bec 100644
--- a/lib/Net/IMAP/InterIMAP.pm
+++ b/lib/Net/IMAP/InterIMAP.pm
@@ -215,7 +215,7 @@ sub in_set($$) {
return 1 if $x == $1;
}
elsif ($r eq '*' or $r eq '*:*') {
- warn "Assuming $x belongs to set $set! (Dunno what \"*\" means.)";
+ warn "Assuming $x belongs to set $set! (Dunno what \"*\" means.)";
return 1;
}
elsif ($r =~ /\A([0-9]+):\*\z/ or $r =~ /\A\*:([0-9]+)\z/) {
@@ -398,7 +398,8 @@ sub new($%) {
if ($self->{type} eq 'imap' and $self->{STARTTLS}) { # RFC 2595 section 5.1
$self->fail("Server did not advertise STARTTLS capability.")
unless grep {$_ eq 'STARTTLS'} @caps;
- $self->_start_ssl($self->{S}) if $self->{type} eq 'imaps';
+ $self->_send('STARTTLS');
+ $self->_start_ssl($self->{S});
# refresh the previous CAPABILITY list since the previous one could have been spoofed
delete $self->{_CAPABILITIES};
@@ -1610,7 +1611,7 @@ sub _ssl_verify($$$) {
my $pkey = Net::SSLeay::X509_get_X509_PUBKEY($cert);
unless (defined $pkey and Net::SSLeay::EVP_Digest($pkey, $type) eq $digest) {
- $self->warn("Fingerprint doesn't match! MiTM in action?");
+ $self->warn("Fingerprint doesn't match! MiTM in action?");
$ok = 0;
}
}
@@ -2355,7 +2356,7 @@ sub _resp($$;&$$) {
# /!\ No bookkeeping since there is no internal cache mapping sequence numbers to UIDs
if ($self->_enabled('QRESYNC')) {
$self->panic("$1 <= $cache->{EXISTS}") if $1 <= $cache->{EXISTS}; # sanity check
- $self->fail("RFC 7162 violation! Got an EXPUNGE response with QRESYNC enabled.");
+ $self->fail("RFC 7162 violation! Got an EXPUNGE response with QRESYNC enabled.");
}
# the new message was expunged before it was synced
$self->{_NEW} = 0 if $self->{_NEW} == 1 and $cache->{EXISTS} == $1;
@@ -2406,7 +2407,7 @@ sub _resp($$;&$$) {
/\A \((\\?$RE_ATOM_CHAR+ [0-9]+(?: \\?$RE_ATOM_CHAR+ [0-9]+)*)?\)\z/ or $self->panic($_);
my %status = split / /, $1;
$mailbox = 'INBOX' if uc $mailbox eq 'INBOX'; # INBOX is case-insensitive
- $self->panic("RFC 5465 violation! Missing HIGHESTMODSEQ data item in STATUS response")
+ $self->panic("RFC 5465 violation! Missing HIGHESTMODSEQ data item in STATUS response")
if $self->_enabled('QRESYNC') and !defined $status{HIGHESTMODSEQ} and defined $cmd and
($cmd eq 'NOTIFY' or $cmd eq 'slurp');
$self->_update_cache_for($mailbox, %status);