# HG changeset patch # User Timo Sirainen # Date 1453993395 -7200 # Node ID a1e05123f776eb90e30b8f0afe71aecb4fd162ba # Parent 166d2d3f57f8b80a675badf62bd5182d24bf99f2 doveadm: All commands iterating mails stop now if doveadm has been killed. diff -r 166d2d3f57f8 -r a1e05123f776 src/doveadm/doveadm-mail-iter.c --- 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); }