commit 79e3360: [Feature] Maps: Allow caching for complex maps

Vsevolod Stakhov vsevolod at highsecure.ru
Wed Aug 28 07:35:05 UTC 2019


Author: Vsevolod Stakhov
Date: 2019-08-27 19:20:51 +0100
URL: https://github.com/rspamd/rspamd/commit/79e3360f4d091ebbc53e944cf882029156469383

[Feature] Maps: Allow caching for complex maps

---
 lualib/lua_maps.lua | 11 +++++++++--
 1 file 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
 


More information about the Commits mailing list