]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Distinguish max_lua_urls and max_urls
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 27 Jan 2020 14:08:16 +0000 (14:08 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 27 Jan 2020 14:08:16 +0000 (14:08 +0000)
conf/options.inc
src/libserver/cfg_file.h
src/libserver/cfg_rcl.c
src/libserver/cfg_utils.c
src/libserver/url.c

index 78fd3bee6b0e5788b506539a91abda7f778d728c..92d6ad7d7e5b23c545c040a9df8f4781c84b6a6f 100644 (file)
@@ -28,6 +28,7 @@ check_all_filters = false;
 # Default settings
 dns_max_requests = 64;
 max_lua_urls = 1024;
+max_urls = 10240;
 
 dns {
     timeout = 1s;
index de6f37766813e2d85540bbf6174bfb5f566d5110..a6d37de00194b199453edfb2d4e53166add4f681 100644 (file)
@@ -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                */
 
index 817f7efc50f0ae3daf59075e7a8d159628a49a83..ebca345633ca1b646266dc17fb9b5cf28e6b5216 100644 (file)
@@ -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,
index 37a3d45788388ebc697a3f1f56dfab7659d72acc..cd85b73ac1d87496116088b8ee2e4d7e74635265 100644 (file)
@@ -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;
 
index de895299b1d31cc950ed6fc22291d9a5dc9ff239..52af7ca272a481acd2c40a80ff63dd990d9049a5 100644 (file)
@@ -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));