Mercurial > dovecot > core-2.2
changeset 19661:166d2d3f57f8
doveadm: Enable SIGINT and SIGTERM signal handler for all doveadm mail commands.
Most importantly this allows stopping dsync.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 28 Jan 2016 16:59:48 +0200 |
parents | 7a3a138a4986 |
children | a1e05123f776 |
files | src/doveadm/doveadm-mail.c |
diffstat | 1 files changed, 8 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/doveadm-mail.c Thu Jan 28 16:43:37 2016 +0200 +++ b/src/doveadm/doveadm-mail.c Thu Jan 28 16:59:48 2016 +0200 @@ -390,6 +390,11 @@ return 1; } +static void sig_die(const siginfo_t *si, void *context ATTR_UNUSED) +{ + killed_signo = si->si_signo; +} + int doveadm_mail_single_user(struct doveadm_mail_cmd_context *ctx, const struct mail_storage_service_input *input, const char **error_r) @@ -405,12 +410,10 @@ if (hook_doveadm_mail_init != NULL) hook_doveadm_mail_init(ctx); - return doveadm_mail_next_user(ctx, input, error_r); -} + lib_signals_set_handler(SIGINT, 0, sig_die, NULL); + lib_signals_set_handler(SIGTERM, 0, sig_die, NULL); -static void sig_die(const siginfo_t *si, void *context ATTR_UNUSED) -{ - killed_signo = si->si_signo; + return doveadm_mail_next_user(ctx, input, error_r); } static void