Mercurial > dovecot > core-2.2
changeset 21606:6f2e7eb1ee90
lib-storage: Add explicit MAIL_ERROR_LOOKUP_ABORT error
The MAIL_ERROR_NOTPOSSIBLE was a bit too generic to assume to mean the same
thing. It doesn't look like there are any external plugins that break
because of this change.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Sat, 18 Feb 2017 05:01:50 +0200 |
parents | bcd286fcdbad |
children | 39943da54ca7 |
files | src/doveadm/doveadm-mail.c src/imap/imap-commands-util.c src/lib-storage/index/index-mailbox-size.c src/lib-storage/index/index-search.c src/lib-storage/index/index-sort.c src/lib-storage/mail-error.h src/lib-storage/mail.c src/pop3/pop3-client.c |
diffstat | 8 files changed, 13 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/doveadm-mail.c Fri Feb 17 19:29:03 2017 +0200 +++ b/src/doveadm/doveadm-mail.c Sat Feb 18 05:01:50 2017 +0200 @@ -84,6 +84,8 @@ case MAIL_ERROR_LIMIT: exit_code = DOVEADM_EX_NOTPOSSIBLE; break; + case MAIL_ERROR_LOOKUP_ABORTED: + break; } /* tempfail overrides all other exit codes, otherwise use whatever error happened first */
--- a/src/imap/imap-commands-util.c Fri Feb 17 19:29:03 2017 +0200 +++ b/src/imap/imap-commands-util.c Sat Feb 18 05:01:50 2017 +0200 @@ -141,6 +141,7 @@ case MAIL_ERROR_NONE: break; case MAIL_ERROR_TEMP: + case MAIL_ERROR_LOOKUP_ABORTED: /* BUG: shouldn't be visible here */ resp_code = IMAP_RESP_CODE_SERVERBUG; break; case MAIL_ERROR_NOTPOSSIBLE:
--- a/src/lib-storage/index/index-mailbox-size.c Fri Feb 17 19:29:03 2017 +0200 +++ b/src/lib-storage/index/index-mailbox-size.c Sat Feb 18 05:01:50 2017 +0200 @@ -331,7 +331,7 @@ } ret = mail_get_virtual_size(mail, &vsize); if (ret < 0 && - mailbox_get_last_mail_error(update->box) == MAIL_ERROR_NOTPOSSIBLE) { + mailbox_get_last_mail_error(update->box) == MAIL_ERROR_LOOKUP_ABORTED) { /* abort and finish on background */ i_assert(mails_left == 0);
--- a/src/lib-storage/index/index-search.c Fri Feb 17 19:29:03 2017 +0200 +++ b/src/lib-storage/index/index-search.c Sat Feb 18 05:01:50 2017 +0200 @@ -82,8 +82,8 @@ case MAIL_ERROR_EXPUNGED: ctx->mail_ctx.seen_lost_data = TRUE; break; - case MAIL_ERROR_NOTPOSSIBLE: - /* lookup_abort hit */ + case MAIL_ERROR_LOOKUP_ABORTED: + /* expected failure */ break; default: search_set_failed(ctx);
--- a/src/lib-storage/index/index-sort.c Fri Feb 17 19:29:03 2017 +0200 +++ b/src/lib-storage/index/index-sort.c Sat Feb 18 05:01:50 2017 +0200 @@ -43,7 +43,7 @@ switch (mailbox_get_last_mail_error(mail->box)) { case MAIL_ERROR_EXPUNGED: break; - case MAIL_ERROR_NOTPOSSIBLE: + case MAIL_ERROR_LOOKUP_ABORTED: /* just change the error message */ mail_storage_set_error(program->t->box->storage, MAIL_ERROR_LIMIT, "Requested sort would have taken too long.");
--- a/src/lib-storage/mail-error.h Fri Feb 17 19:29:03 2017 +0200 +++ b/src/lib-storage/mail-error.h Sat Feb 18 05:01:50 2017 +0200 @@ -51,6 +51,9 @@ MAIL_ERROR_INVALIDDATA, /* Operation ran against some kind of a limit. */ MAIL_ERROR_LIMIT, + /* Operation couldn't be finished as efficiently as required by + mail.lookup_abort. */ + MAIL_ERROR_LOOKUP_ABORTED, /* FIXME: Obsolete - remove in v2.3 */ MAIL_ERROR_NOSPACE = MAIL_ERROR_NOQUOTA
--- a/src/lib-storage/mail.c Fri Feb 17 19:29:03 2017 +0200 +++ b/src/lib-storage/mail.c Sat Feb 18 05:01:50 2017 +0200 @@ -247,7 +247,7 @@ void mail_set_aborted(struct mail *mail) { - mail_storage_set_error(mail->box->storage, MAIL_ERROR_NOTPOSSIBLE, + mail_storage_set_error(mail->box->storage, MAIL_ERROR_LOOKUP_ABORTED, "Mail field not cached"); }
--- a/src/pop3/pop3-client.c Fri Feb 17 19:29:03 2017 +0200 +++ b/src/pop3/pop3-client.c Sat Feb 18 05:01:50 2017 +0200 @@ -97,7 +97,7 @@ if (ret == 0) return 0; - if (mailbox_get_last_mail_error(mail->box) != MAIL_ERROR_NOTPOSSIBLE) + if (mailbox_get_last_mail_error(mail->box) != MAIL_ERROR_LOOKUP_ABORTED) return -1; /* virtual size not available with a fast lookup. @@ -108,7 +108,7 @@ if (ret == 0) return 0; - if (mailbox_get_last_mail_error(mail->box) != MAIL_ERROR_NOTPOSSIBLE) + if (mailbox_get_last_mail_error(mail->box) != MAIL_ERROR_LOOKUP_ABORTED) return -1; /* no way to quickly get the size. fallback to doing a slow virtual