]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Avoid sending FETCH BODY[HEADER] when BODY[] is already being fetched
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 12 Jun 2017 21:55:36 +0000 (00:55 +0300)
committerGitLab <gitlab@git.dovecot.net>
Wed, 14 Jun 2017 14:21:29 +0000 (17:21 +0300)
This probably only shows up in some special situations with plugins.

src/lib-storage/index/imapc/imapc-mail-fetch.c

index 110bc9f2e2b448f7bbf243f369beccc188787b25..4ca4e09ce447c308e4a5b0a65715d70cc27181ae 100644 (file)
@@ -274,6 +274,7 @@ imapc_mail_send_fetch(struct mail *_mail, enum mail_fetch_field fields,
                           full body and sometimes only the headers. */
                        str_append(str, "BODY.PEEK[HEADER] BODY.PEEK[TEXT] ");
                }
+               fields |= MAIL_FETCH_STREAM_HEADER;
        } else if ((fields & MAIL_FETCH_STREAM_HEADER) != 0)
                str_append(str, "BODY.PEEK[HEADER] ");
        else if (headers != NULL) {
@@ -359,8 +360,7 @@ imapc_mail_get_wanted_fetch_fields(struct imapc_mail *mail)
        if (data->stream == NULL && data->access_part != 0) {
                if ((data->access_part & (READ_BODY | PARSE_BODY)) != 0)
                        fields |= MAIL_FETCH_STREAM_BODY;
-               else
-                       fields |= MAIL_FETCH_STREAM_HEADER;
+               fields |= MAIL_FETCH_STREAM_HEADER;
        }
        return fields;
 }