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.) --- Changelog | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Changelog') diff --git a/Changelog b/Changelog index 23d2a17..5b010d2 100644 --- a/Changelog +++ b/Changelog @@ -6,6 +6,10 @@ interimap (0.2) upstream server. * Add a configuration option 'null-stderr=YES' to send STDERR to /dev/null for type=tunnel. + * Add support for the Binary Content extension [RFC3516]. Enabled by + default if both the local and remote servers advertize "BINARY". + Can be disabled by adding 'use-binary=NO' to the default section in + the configuration file. -- Guilhem Moulin Wed, 09 Sep 2015 00:44:35 +0200 -- cgit v1.2.3