From: Aki Tuomi Date: Wed, 4 Oct 2023 05:50:12 +0000 (+0300) Subject: doveadm: Add doveadm stats reopen X-Git-Tag: 2.4.0~2477 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=131c5e98e53fa745473617f39532a79db7279ebd;p=thirdparty%2Fdovecot%2Fcore.git doveadm: Add doveadm stats reopen --- diff --git a/src/doveadm/doveadm-cmd.c b/src/doveadm/doveadm-cmd.c index 147d172001..ad15975f63 100644 --- a/src/doveadm/doveadm-cmd.c +++ b/src/doveadm/doveadm-cmd.c @@ -24,6 +24,7 @@ static struct doveadm_cmd_ver2 *doveadm_commands_ver2[] = { &doveadm_cmd_stats_dump_ver2, &doveadm_cmd_stats_add_ver2, &doveadm_cmd_stats_remove_ver2, + &doveadm_cmd_stats_reopen_ver2, &doveadm_cmd_penalty_ver2, &doveadm_cmd_kick_ver2, &doveadm_cmd_proxy_kick_ver2, diff --git a/src/doveadm/doveadm-cmd.h b/src/doveadm/doveadm-cmd.h index abf9d4ab67..a52c292882 100644 --- a/src/doveadm/doveadm-cmd.h +++ b/src/doveadm/doveadm-cmd.h @@ -43,6 +43,7 @@ extern struct doveadm_cmd_ver2 doveadm_cmd_reload_ver2; extern struct doveadm_cmd_ver2 doveadm_cmd_stats_dump_ver2; extern struct doveadm_cmd_ver2 doveadm_cmd_stats_add_ver2; extern struct doveadm_cmd_ver2 doveadm_cmd_stats_remove_ver2; +extern struct doveadm_cmd_ver2 doveadm_cmd_stats_reopen_ver2; extern struct doveadm_cmd_ver2 doveadm_cmd_mailbox_mutf7; extern struct doveadm_cmd_ver2 doveadm_cmd_penalty_ver2; extern struct doveadm_cmd_ver2 doveadm_cmd_pw; diff --git a/src/doveadm/doveadm-stats.c b/src/doveadm/doveadm-stats.c index 6bcf419a15..bd7552211a 100644 --- a/src/doveadm/doveadm-stats.c +++ b/src/doveadm/doveadm-stats.c @@ -51,6 +51,7 @@ struct stats_cmd_vfuncs { static int build_stats_dump_cmd(struct stats_cmd_context *ctx, const char **error_r); static int build_stats_add_cmd(struct stats_cmd_context *ctx, const char **error_r); static int build_stats_remove_cmd(struct stats_cmd_context *ctx, const char **error_r); +static int build_stats_reopen_cmd(struct stats_cmd_context *ctx, const char **error_r); static void stats_dump_process_response(struct stats_cmd_context *ctx); static void stats_modify_process_response(struct stats_cmd_context *ctx); @@ -72,6 +73,11 @@ static struct stats_cmd_vfuncs remove_vfuncs = { .process_response = stats_modify_process_response }; +static struct stats_cmd_vfuncs reopen_vfuncs = { + .build_cmd = build_stats_reopen_cmd, + .process_response = stats_modify_process_response +}; + static string_t *init_stats_cmd(void) { string_t *cmd = t_str_new(128); @@ -289,6 +295,15 @@ static int build_stats_remove_cmd(struct stats_cmd_context *ctx, return 0; } +static int build_stats_reopen_cmd(struct stats_cmd_context *ctx, + const char **error_r ATTR_UNUSED) +{ + ctx->cmd = init_stats_cmd(); + str_append(ctx->cmd, "REOPEN\n"); + + return 0; +} + static void doveadm_cmd_stats_dump(struct doveadm_cmd_context *cctx) { stats_exec_cmd(cctx, &dump_vfuncs); @@ -304,6 +319,11 @@ static void doveadm_cmd_stats_remove(struct doveadm_cmd_context *cctx) stats_exec_cmd(cctx, &remove_vfuncs); } +static void doveadm_cmd_stats_reopen(struct doveadm_cmd_context *cctx) +{ + stats_exec_cmd(cctx, &reopen_vfuncs); +} + struct doveadm_cmd_ver2 doveadm_cmd_stats_dump_ver2 = { .cmd = doveadm_cmd_stats_dump, .name = "stats dump", @@ -341,3 +361,11 @@ DOVEADM_CMD_PARAMS_START DOVEADM_CMD_PARAM('\0', "name", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL) DOVEADM_CMD_PARAMS_END }; + +struct doveadm_cmd_ver2 doveadm_cmd_stats_reopen_ver2 = { + .cmd = doveadm_cmd_stats_reopen, + .name = "stats reopen", + .usage = "", +DOVEADM_CMD_PARAMS_START +DOVEADM_CMD_PARAMS_END +};