]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Add doveadm stats reopen
authorAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 4 Oct 2023 05:50:12 +0000 (08:50 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 30 Oct 2023 06:29:29 +0000 (06:29 +0000)
src/doveadm/doveadm-cmd.c
src/doveadm/doveadm-cmd.h
src/doveadm/doveadm-stats.c

index 147d172001f8eb19c99a8a843f034f0cb3325c51..ad15975f6359f9e152517b9af3b8d61bf4cd0061 100644 (file)
@@ -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,
index abf9d4ab675c6fddd03c98b74117bef02dc3dca6..a52c2928829d21a1f6deacc7edca7f87d2d00479 100644 (file)
@@ -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;
index 6bcf419a15564e740e917fd51e2977a4abb6a482..bd7552211adfdb1df1cee5756eeaa8b8d4679776 100644 (file)
@@ -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
+};