Mercurial > dovecot > core-2.2
changeset 22730:c7add8c032df
imapc: Add imapc_features=fetch-empty-is-expunged
When FETCH returns an empty mail, the mail is assumed to be expunged.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Mon, 30 Oct 2017 11:19:17 +0200 |
parents | b50c55023f08 |
children | e821bea31605 |
files | src/lib-storage/index/imapc/imapc-mail-fetch.c src/lib-storage/index/imapc/imapc-settings.c src/lib-storage/index/imapc/imapc-settings.h |
diffstat | 3 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/imapc/imapc-mail-fetch.c Wed May 17 10:35:03 2017 +0300 +++ b/src/lib-storage/index/imapc/imapc-mail-fetch.c Mon Oct 30 11:19:17 2017 +0200 @@ -609,6 +609,8 @@ bool have_header, bool have_body) { struct index_mail *imail = &mail->imail; + struct imapc_mailbox *mbox = + (struct imapc_mailbox *)mail->imail.mail.mail.box; struct istream *hdr_stream = NULL; const char *value; int fd; @@ -663,7 +665,9 @@ } else { if (!imap_arg_get_nstring(arg, &value)) value = NULL; - if (value == NULL) { + if (value == NULL || + (value[0] == '\0' && + IMAPC_BOX_HAS_FEATURE(mbox, IMAPC_FEATURE_FETCH_EMPTY_IS_EXPUNGED))) { mail_set_expunged(&imail->mail.mail); if (hdr_stream != NULL) i_stream_unref(&hdr_stream);
--- a/src/lib-storage/index/imapc/imapc-settings.c Wed May 17 10:35:03 2017 +0300 +++ b/src/lib-storage/index/imapc/imapc-settings.c Mon Oct 30 11:19:17 2017 +0200 @@ -102,6 +102,7 @@ { "modseq", IMAPC_FEATURE_MODSEQ }, { "delay-login", IMAPC_FEATURE_DELAY_LOGIN }, { "fetch-bodystructure", IMAPC_FEATURE_FETCH_BODYSTRUCTURE }, + { "fetch-empty-is-expunged", IMAPC_FEATURE_FETCH_EMPTY_IS_EXPUNGED }, { NULL, 0 } };
--- a/src/lib-storage/index/imapc/imapc-settings.h Wed May 17 10:35:03 2017 +0300 +++ b/src/lib-storage/index/imapc/imapc-settings.h Mon Oct 30 11:19:17 2017 +0200 @@ -18,6 +18,7 @@ IMAPC_FEATURE_MODSEQ = 0x400, IMAPC_FEATURE_DELAY_LOGIN = 0x800, IMAPC_FEATURE_FETCH_BODYSTRUCTURE = 0x1000, + IMAPC_FEATURE_FETCH_EMPTY_IS_EXPUNGED = 0x4000, }; /* </settings checks> */