From: Vsevolod Stakhov Date: Fri, 11 Oct 2019 11:24:29 +0000 (+0100) Subject: [Minor] Add default limit for rbl requests X-Git-Tag: 2.0~7 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=b38a1ad26bbbc0a40bbdddf2b7d6dea6c3bd049a;p=rspamd.git [Minor] Add default limit for rbl requests --- diff --git a/src/lua/lua_config.c b/src/lua/lua_config.c index f047f1530..f75899f08 100644 --- a/src/lua/lua_config.c +++ b/src/lua/lua_config.c @@ -810,6 +810,13 @@ LUA_FUNCTION_DEF (config, init_subsystem); */ LUA_FUNCTION_DEF (config, get_tld_path); +/*** + * @method rspamd_config:get_dns_max_requests() + * Returns limit of DNS requests per task + * @return {number} number of dns requests allowed + */ +LUA_FUNCTION_DEF (config, get_dns_max_requests); + static const struct luaL_reg configlib_m[] = { LUA_INTERFACE_DEF (config, get_module_opt), LUA_INTERFACE_DEF (config, get_mempool), @@ -882,6 +889,7 @@ static const struct luaL_reg configlib_m[] = { LUA_INTERFACE_DEF (config, init_modules), LUA_INTERFACE_DEF (config, init_subsystem), LUA_INTERFACE_DEF (config, get_tld_path), + LUA_INTERFACE_DEF (config, get_dns_max_requests), {"__tostring", rspamd_lua_class_tostring}, {"__newindex", lua_config_newindex}, {NULL, NULL} @@ -4301,6 +4309,22 @@ lua_config_get_tld_path (lua_State *L) return 1; } +static gint +lua_config_get_dns_max_requests (lua_State *L) +{ + LUA_TRACE_POINT; + struct rspamd_config *cfg = lua_check_config (L, 1); + + if (cfg != NULL) { + lua_pushinteger (L, cfg->dns_max_requests); + } + else { + return luaL_error (L, "invalid arguments"); + } + + return 1; +} + static gint lua_monitored_alive (lua_State *L) { diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua index f66186fa6..68f413b10 100644 --- a/src/plugins/lua/rbl.lua +++ b/src/plugins/lua/rbl.lua @@ -1097,6 +1097,10 @@ for key,rbl in pairs(opts.rbls or opts.rules) do end end + if not rbl.requests_limit then + rbl.requests_limit = rspamd_config:get_dns_max_requests() + end + local res,err = rule_schema:transform(rbl) if not res then rspamd_logger.errx(rspamd_config, 'invalid config for %s: %s, RBL is DISABLED',