]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Add reason_code=doveadm:cmd_<command name> to events
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 11 Mar 2021 13:26:09 +0000 (15:26 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 29 Sep 2021 10:09:58 +0000 (10:09 +0000)
src/doveadm/doveadm-mail-batch.c
src/doveadm/doveadm-mail.c

index 590ce2da71f6c371ccfbf555734f84ca812a6659..5acacc91637dc588dc7e6ed43ad3fc04304bb6cd 100644 (file)
@@ -38,7 +38,13 @@ static int cmd_batch_run(struct doveadm_mail_cmd_context *_ctx,
 
        array_foreach_elem(&ctx->commands, cmd) {
                cmd->cur_mail_user = user;
-               if (cmd->v.run(cmd, user) < 0) {
+               const char *reason_code =
+                       event_reason_code_prefix("doveadm", "cmd_",
+                                                cmd->cmd->name);
+               struct event_reason *reason = event_reason_begin(reason_code);
+               int ret = cmd->v.run(cmd, user);
+               event_reason_end(&reason);
+               if (ret < 0) {
                        i_assert(cmd->exit_code != 0);
                        _ctx->exit_code = cmd->exit_code;
                        ret = -1;
index 8eb0c9b41e4d77373a97ca7833190ea4997f584e..cc8e03b9017d929500f282f68e5d0c3cc7ca6070 100644 (file)
@@ -458,12 +458,18 @@ doveadm_mail_next_user(struct doveadm_mail_cmd_context *ctx,
                return ret;
        }
 
+       struct event_reason *reason =
+               event_reason_begin(event_reason_code_prefix("doveadm", "cmd_",
+                                                           ctx->cmd->name));
        T_BEGIN {
                if (ctx->v.run(ctx, ctx->cur_mail_user) < 0) {
                        i_assert(ctx->exit_code != 0);
                }
        } T_END;
        mail_user_deinit(&ctx->cur_mail_user);
+       /* user deinit may still do some work, so finish the reason after it */
+       event_reason_end(&reason);
+
        mail_storage_service_user_unref(&ctx->cur_service_user);
        return 1;
 }