]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Remove X-Message-Flag filtering if imapc_features has rfc822.size
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 28 Jan 2016 15:15:20 +0000 (17:15 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 28 Jan 2016 15:15:20 +0000 (17:15 +0200)
src/lib-storage/index/imapc/imapc-mail-fetch.c

index 7e2b513200924ecfeda2c5df58304784835ad675..5bd5d81002bb9b2f002867ff6345479791665e3b 100644 (file)
@@ -504,6 +504,7 @@ void imapc_mail_init_stream(struct imapc_mail *mail)
 {
        struct index_mail *imail = &mail->imail;
        struct mail *_mail = &imail->mail.mail;
+       struct imapc_mailbox *mbox = (struct imapc_mailbox *)_mail->box;
        struct istream *input;
        uoff_t size;
        int ret;
@@ -512,7 +513,11 @@ void imapc_mail_init_stream(struct imapc_mail *mail)
                          t_strdup_printf("imapc mail uid=%u", _mail->uid));
        index_mail_set_read_buffer_size(_mail, imail->data.stream);
 
-       imapc_stream_filter(&imail->data.stream);
+       if (!IMAPC_BOX_HAS_FEATURE(mbox, IMAPC_FEATURE_RFC822_SIZE)) {
+               /* enable filtering only when we're not passing through
+                  RFC822.SIZE. otherwise we'll get size mismatches. */
+               imapc_stream_filter(&imail->data.stream);
+       }
        if (imail->mail.v.istream_opened != NULL) {
                if (imail->mail.v.istream_opened(_mail,
                                                 &imail->data.stream) < 0) {