From 64dc8a1ed4e15ce456a699184a4fff263f2c902f Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Wed, 9 Sep 2015 00:44:05 +0200 Subject: Add support for the IMAP COMPRESS extension [RFC4978]. Also, add traffic statistics after closing the connection to the IMAP server. --- interimap.1 | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'interimap.1') diff --git a/interimap.1 b/interimap.1 index 44235fc..bb97cf4 100644 --- a/interimap.1 +++ b/interimap.1 @@ -311,6 +311,13 @@ rely on Certificate Authorities. Directory containing the certificate(s) of the trusted Certificate Authorities, used for server certificate verification. +.TP +.I compress +Whether to use the IMAP COMPRESS extension [RFC4978] for servers +advertizing it. +(Default: \(lqNO\(rq for the \(lq[local]\(rq section, \(lqYES\(rq for +the \(lq[remote]\(rq section.) + .SH KNOWN BUGS AND LIMITATIONS .IP \[bu] -- cgit v1.2.3 From 9fb0576765624cc27a1c06aebc9f4ef5df31ba30 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Wed, 9 Sep 2015 01:18:14 +0200 Subject: Add a configuration option 'null-stderr=YES'. To send STDERR to /dev/null for type=tunnel. --- interimap.1 | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'interimap.1') diff --git a/interimap.1 b/interimap.1 index bb97cf4..dc3b49b 100644 --- a/interimap.1 +++ b/interimap.1 @@ -318,6 +318,12 @@ advertizing it. (Default: \(lqNO\(rq for the \(lq[local]\(rq section, \(lqYES\(rq for the \(lq[remote]\(rq section.) +.TP +.I null-stderr +Whether to redirect \fIcommand\fR's standard error to \(lq/dev/null\(rq +for type \fItype\fR=tunnel. +(Default: \(lqNO\(rq.) + .SH KNOWN BUGS AND LIMITATIONS .IP \[bu] -- cgit v1.2.3 From 1abb196660516f85b2ec13673aa28e6cf8a24b41 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Wed, 9 Sep 2015 16:05:36 +0200 Subject: Add support for the Binary Content extension [RFC3516]. 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.) --- interimap.1 | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'interimap.1') diff --git a/interimap.1 b/interimap.1 index dc3b49b..e552351 100644 --- a/interimap.1 +++ b/interimap.1 @@ -324,6 +324,18 @@ Whether to redirect \fIcommand\fR's standard error to \(lq/dev/null\(rq for type \fItype\fR=tunnel. (Default: \(lqNO\(rq.) +.TP +.I use-binary +Whether to use the Binary Content extension [RFC3516] in FETCH and +APPEND commands. +This is useful for binary attachments for instance, as it avoids the +overhead caused by base64 encodings. Moreover if the IMAP COMPRESS +extension is enabled, full flush points are placed around large non-text +literals to empty the compression dictionary. +This option is only available in the default section, and is ignored if +either server does not advertize \(lqBINARY\(rq in its capability list. +(Default: \(lqYES\(rq.) + .SH KNOWN BUGS AND LIMITATIONS .IP \[bu] -- cgit v1.2.3 From 47fec06f75d365259c6bf1da78dfc4b5548ce5fe Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Wed, 9 Sep 2015 22:30:00 +0200 Subject: Add a list of supported extensions. --- interimap.1 | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) (limited to 'interimap.1') diff --git a/interimap.1 b/interimap.1 index e552351..988fa16 100644 --- a/interimap.1 +++ b/interimap.1 @@ -15,10 +15,7 @@ servers. Such synchronization is made possible by the QRESYNC extension from [RFC7162]; for convenience reasons servers must also support LIST\-EXTENDED [RFC5258], LIST\-STATUS [RFC5819] and UIDPLUS [RFC4315]. -Furthermore, while \fBInterIMAP\fR can work with servers lacking support -for LITERAL+ [RFC2088] and MULTIAPPEND [RFC3502], these extensions -greatly improve performance by reducing the number of required round -trips hence are recommended. +See also the \fBSUPPORTED EXTENSIONS\fR section. .PP Stateful synchronization is only possible for mailboxes supporting @@ -336,6 +333,24 @@ This option is only available in the default section, and is ignored if either server does not advertize \(lqBINARY\(rq in its capability list. (Default: \(lqYES\(rq.) +.SH SUPPORTED EXTENSIONS + +Performance is better for servers supporting the following extensions to +the IMAP4rev1 [RFC3501] protocol: + +.IP \[bu] +LITERAL+ [RFC2088] non-synchronizing literals (recommended), +.IP \[bu] +MULTIAPPEND [RFC3502] (recommended), +.IP \[bu] +COMPRESS=DEFLATE [RFC4978] (recommended), +.IP \[bu] +SASL-IR [RFC4959] SASL Initial Client Response, +.IP \[bu] +UNSELECT [RFC3691], and +.IP \[bu] +BINARY [RFC3516]. + .SH KNOWN BUGS AND LIMITATIONS .IP \[bu] @@ -354,10 +369,14 @@ a message is moved to another mailbox (using the MOVE command from [RFC6851] or COPY + STORE + EXPUNGE), moving a messages causes \fBInterIMAP\fR to believe that it was deleted while another one (which is replicated again) was added to the other mailbox in the meantime. - .IP \[bu] \(lqPLAIN\(rq and \(lqLOGIN\(rq are the only authentication mechanisms currently supported. +.IP \[bu] +\fBInterIMAP\fR will probably not work with non RFC-compliant servers. +In particular, no work-around are currently implemented beside the +tunable in the configuration file. Morever, few IMAP servers have been +tested so far. .SH AUTHOR Written by Guilhem Moulin -- cgit v1.2.3