| Commit message (Collapse) | Author | Age | Files |
| |
|
|
|
|
|
| |
microsoft's IMAP server violates RFC 3501 by skipping the trailing space
for empty resp-text.
|
|
|
|
|
| |
We require QRESYNC support (RFC 7162) for syncing, which requires UID
(MODSEQ) in unsolicited FETCH responses, cf RFC 7162 section 3.2.4.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
RFC 3501:
INBOX is case-insensitive. All case variants of INBOX (e.g., "iNbOx") MUST
be interpreted as INBOX not as an astring. An astring which consists of
the case-insensitive sequence "I" "N" "B" "O" "X" is considered to be INBOX
and not an astring.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is most likely useless in our case since the TCP keepalive time is
usually much higher than the IMAP timeout.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
“If the server does not know how to decode the section's CTE, it MUST
fail the request and issue a "NO" response that contains the
"UNKNOWN-CTE" extended response code.” — [RFC3516 section 4.3]
Unfortunately the client doesn't know which message couldn't be decoded,
so it can't fallback and use BODY instead.
This made ‘use-binary=NO’ pretty much mandatory. Hence we remove
support for BINARY [RFC3516]. Instead, we increase the thresold for
when to add Zlib full flush points from 4096 to the buffer size (32768).
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also,
* Rename the 'SSL_verify_trusted_peer', 'SSL_ca_path', and
'SSL_cipher_list' options to 'SSL_CApath', 'SSL_verify' and
'SSL_cipherlist', respectively.
* Add an option 'SSL_CAfile' to specify a file containing trusted
certificates to use during server certificate authentication.
* Replace Compress::Zlib dependency by the lower level
Compress::Raw::Zlib.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Also, add SSL options SINGLE_ECDH_USE, SINGLE_DH_USE, NO_SSLv2, NO_SSLv3
and NO_COMPRESSION to the compiled-in CTX options.
And use SSL_MODE_AUTO_RETRY to avoid SSL_read failures during a
handshake.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unfortunately as of Debian Wheezy it doesn't work for Dovecot with
COMPRESS=DEFLATE [RFC4978] and non-synchronizing literals.
perl -e 'use Compress::Raw::Zlib;
print "a COMPRESS DEFLATE\r\n";
sleep 1;
my $d = new Compress::Raw::Zlib::Deflate( -WindowBits => -15 );
$d->deflate("b APPEND TRASH ~{1+}\r\nx\r\n", my $buf);
print $buf;
$d->flush($buf, Z_SYNC_FLUSH);
print $buf;
sleep 1;
' | /usr/lib/dovecot/imap
imap(guilhem): Panic: stream doesn't support seeking backwards
Interestingly, it works just fine for non-binary literals:
perl -e 'use Compress::Raw::Zlib;
print "a COMPRESS DEFLATE\r\n";
sleep 1;
my $d = new Compress::Raw::Zlib::Deflate( -WindowBits => -15 );
$d->deflate("b APPEND TRASH {1+}\r\nx\r\n", my $buf);
print $buf;
$d->flush($buf, Z_SYNC_FLUSH);
print $buf;
sleep 1;
' | /usr/lib/dovecot/imap
However I can't reproduce the problem Dovecot 2.2.18 and Debian Sid (but
it doesn't help to install Dovecot from testing to my Wheezy box.)
|
|
|
|
| |
To send STDERR to /dev/null for type=tunnel.
|
|
|
|
|
| |
Also, add traffic statistics after closing the connection to the IMAP
server.
|
| |
|
|
|
|
| |
So we can clean after us (and for instance remove the lockfile).
|
|
|
|
| |
To avoid confusion with http://imapsync.lamiral.info .
|
| |
|
|
|
|
|
|
| |
Cf. RFC 7162:
seq-match-data = "(" known-sequence-set SP known-uid-set ")"
|
|
|
|
|
|
|
|
|
| |
This should avoids most false-positive among messages reported as
VANISHED by the server but unknown from the database. The reason for
this server behavior is that QRESYNC [RFC7162] doesn't force the server
to remember the MODSEQs of EXPUNGEd messages. By passing a sample of
known UIDs/sequence numbers we let the server know that the messages
have been EXPUNGEd [RFC7162, section 3.2.5.2].
|
|
|
|
| |
commands.
|
|
|
|
|
| |
Also, don't try to import POSIX or Time::HiRes unless the logfile is
configured.
|
|
|
|
|
| |
However don't include timestamps to STDERR, that's the job of the
syslog.
|
| |
|
|
|
|
| |
\HasNoChildren attribute.
|
|
|
|
|
|
| |
And no longer crash when trying to create a mailbox that already exists.
This could happen for instance if list-select-opts contains 'SUBSCRIBE'
and the mailbox is not subscribed on one side.
|
|
|
|
|
|
|
|
|
|
|
| |
Add 3 options:
- list-mailbox
- list-select-opts
- ignore-mailbox
The first two control the initial LIST command, while the last one is a
regular expression to filter out mailboxes to exclude from the LIST
response.
|
|
|
|
|
| |
It didn't really work since STORE commands are answered with a tagged OK
response for instance.
|
| |
|
|
|
|
|
|
| |
This was too error-prone. Instead, abort if a naming conflict occurs,
and provide explicit commands --delete and --rename to delete or rename
a mailbox.
|
| |
|
|
|
|
|
|
|
| |
its UIDNEXT.
So we need to check again the first $source (remote) whenever the last
one (local) added new messages to it.
|