aboutsummaryrefslogtreecommitdiffstats
path: root/src/libserver
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2017-07-04 08:33:00 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2017-07-04 08:33:00 +0100
commitdde53bb20d667ef89093fb9fb5819c4b1a2a519e (patch)
tree47453e0dcdd040f2ed785f2f498512df37015065 /src/libserver
parent5dfec9ae61f33003aab026b7147b45beede923b5 (diff)
downloadrspamd-dde53bb20d667ef89093fb9fb5819c4b1a2a519e.tar.gz
rspamd-dde53bb20d667ef89093fb9fb5819c4b1a2a519e.zip
[Minor] Add configuration knobs for sessions cache
Diffstat (limited to 'src/libserver')
-rw-r--r--src/libserver/cfg_file.h2
-rw-r--r--src/libserver/cfg_rcl.c12
-rw-r--r--src/libserver/cfg_utils.c2
3 files changed, 16 insertions, 0 deletions
diff --git a/src/libserver/cfg_file.h b/src/libserver/cfg_file.h
index e48eb6db0..8c7b39262 100644
--- a/src/libserver/cfg_file.h
+++ b/src/libserver/cfg_file.h
@@ -308,6 +308,7 @@ struct rspamd_config {
gboolean ignore_received; /**< Ignore data from the first received header */
gboolean check_local; /** Don't disable any checks for local networks */
gboolean check_authed; /** Don't disable any checks for authenticated users */
+ gboolean enable_sessions_cache; /**< Enable session cache for debug */
gsize max_diff; /**< maximum diff size for text parts */
gsize max_cores_size; /**< maximum size occupied by rspamd core files */
@@ -411,6 +412,7 @@ struct rspamd_config {
guint max_word_len; /**< maximum length of the word to be considered */
guint words_decay; /**< limit for words for starting adaptive ignoring */
guint history_rows; /**< number of history rows stored */
+ guint max_session_cache; /**< maximum number of sessions cache elts */
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 bf3a1779f..f4ca6ded7 100644
--- a/src/libserver/cfg_rcl.c
+++ b/src/libserver/cfg_rcl.c
@@ -2199,6 +2199,18 @@ rspamd_rcl_config_init (struct rspamd_config *cfg)
G_STRUCT_OFFSET (struct rspamd_config, default_max_shots),
0,
"Maximum number of hits per a single symbol (default: 100)");
+ rspamd_rcl_add_default_handler (sub,
+ "sessions_cache",
+ rspamd_rcl_parse_struct_boolean,
+ G_STRUCT_OFFSET (struct rspamd_config, enable_sessions_cache),
+ 0,
+ "Enable sessions cache to debug dangling sessions");
+ rspamd_rcl_add_default_handler (sub,
+ "max_session_cache",
+ rspamd_rcl_parse_struct_integer,
+ G_STRUCT_OFFSET (struct rspamd_config, max_session_cache),
+ 0,
+ "Maximum number of sessions in cache before warning (default: 100)");
/* Neighbours configuration */
rspamd_rcl_add_section_doc (&sub->subsections, "neighbours", "name",
diff --git a/src/libserver/cfg_utils.c b/src/libserver/cfg_utils.c
index 4966c37d6..abc647dcb 100644
--- a/src/libserver/cfg_utils.c
+++ b/src/libserver/cfg_utils.c
@@ -42,6 +42,7 @@
#define DEFAULT_MAX_MESSAGE (50 * 1024 * 1024)
#define DEFAULT_MAX_PIC (1 * 1024 * 1024)
#define DEFAULT_MAX_SHOTS 100
+#define DEFAULT_MAX_SESSIONS 100
struct rspamd_ucl_map_cbdata {
struct rspamd_config *cfg;
@@ -181,6 +182,7 @@ rspamd_config_new (void)
cfg->redis_pool = rspamd_redis_pool_init ();
#endif
cfg->default_max_shots = DEFAULT_MAX_SHOTS;
+ cfg->max_session_cache = DEFAULT_MAX_SESSIONS;
REF_INIT_RETAIN (cfg, rspamd_config_free);