Mercurial > dovecot > core-2.2
changeset 19662:a1e05123f776
doveadm: All commands iterating mails stop now if doveadm has been killed.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 28 Jan 2016 17:03:15 +0200 |
parents | 166d2d3f57f8 |
children | befd1785a11f |
files | src/doveadm/doveadm-mail-iter.c |
diffstat | 1 files changed, 9 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/doveadm-mail-iter.c Thu Jan 28 16:59:48 2016 +0200 +++ b/src/doveadm/doveadm-mail-iter.c Thu Jan 28 17:03:15 2016 +0200 @@ -14,6 +14,7 @@ struct mailbox *box; struct mailbox_transaction_context *t; struct mail_search_context *search_ctx; + bool killed; }; int doveadm_mail_iter_init(struct doveadm_mail_cmd_context *ctx, @@ -109,6 +110,10 @@ } if (ret < 0) doveadm_mail_failed_mailbox(iter->ctx, iter->box); + else if (iter->killed) { + iter->ctx->exit_code = EX_TEMPFAIL; + ret = -1; + } if (!keep_box) mailbox_free(&iter->box); i_free(iter); @@ -142,6 +147,10 @@ { if (iter->search_ctx == NULL) return FALSE; + if (doveadm_is_killed()) { + iter->killed = TRUE; + return FALSE; + } return mailbox_search_next(iter->search_ctx, mail_r); }