commit fab1414: [Minor] Distinguish max_lua_urls and max_urls

Vsevolod Stakhov vsevolod at highsecure.ru
Mon Jan 27 14:14:06 UTC 2020


Author: Vsevolod Stakhov
Date: 2020-01-27 14:08:16 +0000
URL: https://github.com/rspamd/rspamd/commit/fab141472d7aa115b2fc603b9e6723e2dbebda7a (HEAD -> master)

[Minor] Distinguish max_lua_urls and max_urls

---
 conf/options.inc          | 1 +
 src/libserver/cfg_file.h  | 1 +
 src/libserver/cfg_rcl.c   | 6 ++++++
 src/libserver/cfg_utils.c | 1 +
 src/libserver/url.c       | 4 ++--
 5 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/conf/options.inc b/conf/options.inc
index 78fd3bee6..92d6ad7d7 100644
--- a/conf/options.inc
+++ b/conf/options.inc
@@ -28,6 +28,7 @@ check_all_filters = false;
 # Default settings
 dns_max_requests = 64;
 max_lua_urls = 1024;
+max_urls = 10240;
 
 dns {
     timeout = 1s;
diff --git a/src/libserver/cfg_file.h b/src/libserver/cfg_file.h
index de6f37766..a6d37de00 100644
--- a/src/libserver/cfg_file.h
+++ b/src/libserver/cfg_file.h
@@ -469,6 +469,7 @@ struct rspamd_config {
 	guint lua_gc_pause;                                /**< lua gc pause										*/
 	guint full_gc_iters;                            /**< iterations between full gc cycle					*/
 	guint max_lua_urls;                             /**< maximum number of urls to be passed to Lua			*/
+	guint max_urls;                                 /**< maximum number of urls to be processed in general	*/
 	guint max_blas_threads;                         /**< maximum threads for openblas when learning ANN		*/
 	guint max_opts_len;                             /**< maximum length for all options for a symbol		*/
 
diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c
index 817f7efc5..ebca34563 100644
--- a/src/libserver/cfg_rcl.c
+++ b/src/libserver/cfg_rcl.c
@@ -2222,6 +2222,12 @@ rspamd_rcl_config_init (struct rspamd_config *cfg, GHashTable *skip_sections)
 				G_STRUCT_OFFSET (struct rspamd_config, max_lua_urls),
 				RSPAMD_CL_FLAG_INT_32,
 				"Maximum count of URLs to pass to Lua to avoid DoS (default: 1024)");
+		rspamd_rcl_add_default_handler (sub,
+				"max_urls",
+				rspamd_rcl_parse_struct_integer,
+				G_STRUCT_OFFSET (struct rspamd_config, max_urls),
+				RSPAMD_CL_FLAG_INT_32,
+				"Maximum count of URLs to process to avoid DoS (default: 10240)");
 		rspamd_rcl_add_default_handler (sub,
 				"max_blas_threads",
 				rspamd_rcl_parse_struct_integer,
diff --git a/src/libserver/cfg_utils.c b/src/libserver/cfg_utils.c
index 37a3d4578..cd85b73ac 100644
--- a/src/libserver/cfg_utils.c
+++ b/src/libserver/cfg_utils.c
@@ -196,6 +196,7 @@ rspamd_config_new (enum rspamd_config_init_flags flags)
 	cfg->log_error_elt_maxlen = 1000;
 	cfg->cache_reload_time = 30.0;
 	cfg->max_lua_urls = 1024;
+	cfg->max_urls = cfg->max_lua_urls * 10;
 	cfg->max_blas_threads = 1;
 	cfg->max_opts_len = 4096;
 
diff --git a/src/libserver/url.c b/src/libserver/url.c
index de895299b..52af7ca27 100644
--- a/src/libserver/url.c
+++ b/src/libserver/url.c
@@ -3108,8 +3108,8 @@ rspamd_url_text_part_callback (struct rspamd_url *url, gsize start_offset,
 
 	if (target_tbl) {
 		/* Also check max urls */
-		if (cbd->task->cfg && cbd->task->cfg->max_lua_urls > 0) {
-			if (g_hash_table_size (target_tbl) > cbd->task->cfg->max_lua_urls) {
+		if (cbd->task->cfg && cbd->task->cfg->max_urls > 0) {
+			if (g_hash_table_size (target_tbl) > cbd->task->cfg->max_urls) {
 				msg_err_task ("part has too many URLs, we cannot process more: "
 							  "%d urls extracted ",
 						(guint)g_hash_table_size (target_tbl));


More information about the Commits mailing list