diff options
Diffstat (limited to 'lualib/lua_maps.lua')
-rw-r--r-- | lualib/lua_maps.lua | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lualib/lua_maps.lua b/lualib/lua_maps.lua index 094494dca..23e5cb942 100644 --- a/lualib/lua_maps.lua +++ b/lualib/lua_maps.lua @@ -21,6 +21,7 @@ limitations under the License. local rspamd_logger = require "rspamd_logger" local ts = require("tableshape").types +local lua_util = require "lua_util" local exports = {} @@ -137,8 +138,14 @@ local function rspamd_map_add_from_ucl(opt, mtype, description) return ret end elseif type(opt) == 'table' then - -- it might be plain map or map of plain elements - -- no caching in this case (yet) + local k = lua_util.table_digest(opt) + if maps_cache[k] then + rspamd_logger.infox(rspamd_config, 'reuse url for %s(%s)', + opt, mtype) + + return maps_cache[k] + end + if opt[1] then if mtype == 'radix' then |