summaryrefslogtreecommitdiffstats
path: root/src/libstat/stat_config.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-06-19 15:25:10 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-06-19 15:25:10 +0100
commit45c538da92ef6482a6e276be8064321c0636aff4 (patch)
tree34f0fb94e604da018dd8fcfb68d119e91c59a881 /src/libstat/stat_config.c
parent37117c9d9884e2293373aea028e33eaaedf4b6a5 (diff)
downloadrspamd-45c538da92ef6482a6e276be8064321c0636aff4.tar.gz
rspamd-45c538da92ef6482a6e276be8064321c0636aff4.zip
Implement statistics closing.
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)
{