aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-12-11 16:48:52 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-12-11 16:48:52 +0000
commitc441c82c28b4e80d9380151fd894cb3b9a530e11 (patch)
tree4642b27a5300be73b91a3d99871c31734406d4bd
parentc81b768ae551c035afc4cec0295a6c1551342452 (diff)
downloadrspamd-c441c82c28b4e80d9380151fd894cb3b9a530e11.tar.gz
rspamd-c441c82c28b4e80d9380151fd894cb3b9a530e11.zip
Add options to limit cores for rspamd
-rw-r--r--doc/markdown/configuration/options.md6
-rw-r--r--src/libserver/cfg_file.h3
-rw-r--r--src/libserver/cfg_rcl.c15
3 files changed, 23 insertions, 1 deletions
diff --git a/doc/markdown/configuration/options.md b/doc/markdown/configuration/options.md
index 661b5ad6e..fa7b24fec 100644
--- a/doc/markdown/configuration/options.md
+++ b/doc/markdown/configuration/options.md
@@ -50,6 +50,10 @@ symbol).
* `classify_headers`: list of headers that are processed by statistics
* `history_rows`: number of rows in the recent history roll table
* `explicit_modules`: always load modules from the list even if they have no according configuration section in the file
+* `disable_hyperscan`: disable hyperscan optimizations (if enabled by compilation time)
+* `cores_dir`: directory where rspamd is intended to drop core files
+* `max_cores_size`: maximum total size of core files that are placed in `cores_dir`
+* `max_cores_count`: maximum number of files in `cores_dir`
## DNS options
@@ -75,4 +79,4 @@ options {
## Upstream options
-**TODO** \ No newline at end of file
+**TODO**
diff --git a/src/libserver/cfg_file.h b/src/libserver/cfg_file.h
index 3c2b14da0..d145eaad4 100644
--- a/src/libserver/cfg_file.h
+++ b/src/libserver/cfg_file.h
@@ -234,6 +234,9 @@ struct rspamd_config {
gboolean disable_hyperscan; /**< disable hyperscan usage */
gsize max_diff; /**< maximum diff size for text parts */
+ gsize max_cores_size; /**< maximum size occupied by rspamd core files */
+ gsize max_cores_count; /**< maximum number of core files */
+ gchar *cores_dir; /**< directory for core files */
enum rspamd_log_type log_type; /**< log type */
gint log_facility; /**< log facility in case of syslog */
diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c
index 751fa6964..f7a9a7be4 100644
--- a/src/libserver/cfg_rcl.c
+++ b/src/libserver/cfg_rcl.c
@@ -1470,6 +1470,21 @@ rspamd_rcl_config_init (void)
rspamd_rcl_parse_struct_boolean,
G_STRUCT_OFFSET (struct rspamd_config, disable_hyperscan),
0);
+ rspamd_rcl_add_default_handler (sub,
+ "cores_dir",
+ rspamd_rcl_parse_struct_string,
+ G_STRUCT_OFFSET (struct rspamd_config, cores_dir),
+ RSPAMD_CL_FLAG_STRING_PATH);
+ rspamd_rcl_add_default_handler (sub,
+ "max_cores_size",
+ rspamd_rcl_parse_struct_integer,
+ G_STRUCT_OFFSET (struct rspamd_config, max_cores_size),
+ RSPAMD_CL_FLAG_INT_SIZE);
+ rspamd_rcl_add_default_handler (sub,
+ "max_cores_count",
+ rspamd_rcl_parse_struct_integer,
+ G_STRUCT_OFFSET (struct rspamd_config, max_cores_count),
+ RSPAMD_CL_FLAG_INT_SIZE);
/* New DNS configuration */
ssub = rspamd_rcl_add_section (&sub->subsections, "dns", NULL, NULL,