summaryrefslogtreecommitdiffstats
path: root/src/libstat/stat_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstat/stat_config.c')
-rw-r--r--src/libstat/stat_config.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/libstat/stat_config.c b/src/libstat/stat_config.c
index 91cca76c7..c75b02fe0 100644
--- a/src/libstat/stat_config.c
+++ b/src/libstat/stat_config.c
@@ -65,7 +65,8 @@ static struct rspamd_stat_tokenizer stat_tokenizers[] = {
.total_learns = rspamd_##eltn##_total_learns, \
.inc_learns = rspamd_##eltn##_inc_learns, \
.dec_learns = rspamd_##eltn##_dec_learns, \
- .get_stat = rspamd_##eltn##_get_stat \
+ .get_stat = rspamd_##eltn##_get_stat, \
+ .close = rspamd_##eltn##_close \
}
static struct rspamd_stat_backend stat_backends[] = {
@@ -113,6 +114,21 @@ rspamd_stat_init (struct rspamd_config *cfg)
}
}
+void
+rspamd_stat_close (void)
+{
+ guint i;
+
+ g_assert (stat_ctx != NULL);
+
+ for (i = 0; i < stat_ctx->backends_count; i ++) {
+ if (stat_ctx->backends[i].close != NULL) {
+ stat_ctx->backends[i].close (stat_ctx->backends[i].ctx);
+ msg_debug ("closed backend %s", stat_ctx->backends[i].name);
+ }
+ }
+}
+
struct rspamd_stat_ctx *
rspamd_stat_get_ctx (void)
{