From f163ec3b4f55cb0e7c5384ee1bd27561b3e8820e Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sat, 24 Oct 2015 23:02:59 +0100 Subject: [PATCH] Finish history format rework. --- conf/options.inc | 1 + doc/markdown/configuration/options.md | 1 + src/libserver/cfg_file.h | 1 + src/libserver/cfg_rcl.c | 5 +++++ src/libserver/cfg_utils.c | 1 + src/rspamd.c | 6 ++++-- 6 files changed, 13 insertions(+), 2 deletions(-) diff --git a/conf/options.inc b/conf/options.inc index fe8f56f89..186afbade 100644 --- a/conf/options.inc +++ b/conf/options.inc @@ -23,3 +23,4 @@ classify_headers = [ ]; control_socket = "$DBDIR/rspamd.sock mode=0600"; +history_rows = 200; diff --git a/doc/markdown/configuration/options.md b/doc/markdown/configuration/options.md index 730a7996b..b503b98f3 100644 --- a/doc/markdown/configuration/options.md +++ b/doc/markdown/configuration/options.md @@ -48,6 +48,7 @@ symbol). * `min_word_len`: minimum size in letters (valid for utf8 texts as well) for a sequence of characters to be treated as a word; normally rspamd skips sequences if they are shorter or equal to three symbols. * `control_socket`: path/bind credits for the control socket * `classify_headers`: list of headers that are processed by statistics +* `history_rows`: number of rows in the recent history roll table ## DNS options diff --git a/src/libserver/cfg_file.h b/src/libserver/cfg_file.h index 44b91505d..1fc5aee28 100644 --- a/src/libserver/cfg_file.h +++ b/src/libserver/cfg_file.h @@ -271,6 +271,7 @@ struct rspamd_config { gdouble upstream_revive_time; /**< revive timeout for upstreams */ guint32 min_word_len; /**< minimum length of the word to be considered */ + guint history_rows; /**< number of history rows stored */ GList *classify_headers; /**< list of headers using for statistics */ struct module_s **compiled_modules; /**< list of compiled C modules */ diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c index 596fff74a..7180d8d70 100644 --- a/src/libserver/cfg_rcl.c +++ b/src/libserver/cfg_rcl.c @@ -1447,6 +1447,11 @@ rspamd_rcl_config_init (void) rspamd_rcl_parse_struct_string, G_STRUCT_OFFSET (struct rspamd_config, tld_file), RSPAMD_CL_FLAG_STRING_PATH); + rspamd_rcl_add_default_handler (sub, + "history_rows", + rspamd_rcl_parse_struct_integer, + G_STRUCT_OFFSET (struct rspamd_config, history_rows), + RSPAMD_CL_FLAG_UINT); /** * Metric section diff --git a/src/libserver/cfg_utils.c b/src/libserver/cfg_utils.c index 5e3bf1561..3af15ab1d 100644 --- a/src/libserver/cfg_utils.c +++ b/src/libserver/cfg_utils.c @@ -175,6 +175,7 @@ rspamd_config_defaults (struct rspamd_config *cfg) cfg->min_word_len = DEFAULT_MIN_WORD; cfg->dns_max_requests = 64; + cfg->history_rows = 200; } void diff --git a/src/rspamd.c b/src/rspamd.c index 3609a3c5c..31d6dad78 100644 --- a/src/rspamd.c +++ b/src/rspamd.c @@ -816,8 +816,6 @@ main (gint argc, gchar **argv, gchar **env) "main"); rspamd_main->stat = rspamd_mempool_alloc0_shared (rspamd_main->server_pool, sizeof (struct rspamd_stat)); - /* Create rolling history */ - rspamd_main->history = rspamd_roll_history_new (rspamd_main->server_pool); rspamd_main->cfg = (struct rspamd_config *) g_malloc0 (sizeof (struct rspamd_config)); @@ -950,6 +948,10 @@ main (gint argc, gchar **argv, gchar **env) rspamd_main->cfg->log_level = G_LOG_LEVEL_DEBUG; } + /* Create rolling history */ + rspamd_main->history = rspamd_roll_history_new (rspamd_main->server_pool, + rspamd_main->cfg->history_rows); + gperf_profiler_init (rspamd_main->cfg, "main"); msg_info_main ("rspamd " -- 2.39.5