diff options
author | Mikhail Galanin <mgalanin@mimecast.com> | 2018-09-10 15:17:14 +0100 |
---|---|---|
committer | Mikhail Galanin <mgalanin@mimecast.com> | 2018-09-10 15:17:14 +0100 |
commit | 1b5cef0e884b49430d5cac902a366703beef5439 (patch) | |
tree | f829cfdbb84f749e68be56892cbd4fc4df58e25b | |
parent | be2a17a180e84fac41c7f4c79bdafbacbd6e067c (diff) | |
download | rspamd-1b5cef0e884b49430d5cac902a366703beef5439.tar.gz rspamd-1b5cef0e884b49430d5cac902a366703beef5439.zip |
[Minor] Updated Lua to comply the new call semantic
-rw-r--r-- | lualib/lua_redis.lua | 13 | ||||
-rw-r--r-- | lualib/lua_util.lua | 24 | ||||
-rw-r--r-- | src/plugins/lua/reputation.lua | 18 |
3 files changed, 38 insertions, 17 deletions
diff --git a/lualib/lua_redis.lua b/lualib/lua_redis.lua index 33757b154..3c7bcd3b6 100644 --- a/lualib/lua_redis.lua +++ b/lualib/lua_redis.lua @@ -961,10 +961,16 @@ end exports.exec_redis_script = exec_redis_script -local function redis_connect_sync(redis_params, is_write, key, cfg) +local function redis_connect_sync(redis_params, is_write, key, cfg, ev_base) if not redis_params then return false,nil end + if not cfg then + cfg = rspamd_config + end + if not ev_base then + ev_base = rspamadm_ev_base + end local rspamd_redis = require "rspamd_redis" local addr @@ -990,8 +996,13 @@ local function redis_connect_sync(redis_params, is_write, key, cfg) local options = { host = addr:get_addr(), timeout = redis_params['timeout'], + config = cfg, + ev_base = ev_base } + for k,v in pairs(redis_params) do + options[k] = v + end local ret,conn = rspamd_redis.connect_sync(options) if not ret then diff --git a/lualib/lua_util.lua b/lualib/lua_util.lua index 0ce0c1874..b8e1dbfad 100644 --- a/lualib/lua_util.lua +++ b/lualib/lua_util.lua @@ -664,6 +664,30 @@ exports.extract_specific_urls = function(params_or_task, lim, need_emails, filte return res end +--[[[ +-- @function lua_util.deepcopy(table) +-- params: { +- - table +-- } +-- Performs deep copy of the table. Including metatables +--]] +local function deepcopy(orig) + local orig_type = type(orig) + local copy + if orig_type == 'table' then + copy = {} + for orig_key, orig_value in next, orig, nil do + copy[deepcopy(orig_key)] = deepcopy(orig_value) + end + setmetatable(copy, deepcopy(getmetatable(orig))) + else -- number, string, boolean, etc + copy = orig + end + return copy +end + +exports.deepcopy = deepcopy + -- Debugging support local unconditional_debug = false local debug_modules = {} diff --git a/src/plugins/lua/reputation.lua b/src/plugins/lua/reputation.lua index f5b461d78..5d3f64b59 100644 --- a/src/plugins/lua/reputation.lua +++ b/src/plugins/lua/reputation.lua @@ -996,20 +996,6 @@ local function reputation_idempotent_cb(task, rule) end end -local function deepcopy(orig) - local orig_type = type(orig) - local copy - if orig_type == 'table' then - copy = {} - for orig_key, orig_value in next, orig, nil do - copy[deepcopy(orig_key)] = deepcopy(orig_value) - end - setmetatable(copy, deepcopy(getmetatable(orig))) - else -- number, string, boolean, etc - copy = orig - end - return copy -end local function override_defaults(def, override) for k,v in pairs(override) do if k ~= 'selector' and k ~= 'backend' then @@ -1059,8 +1045,8 @@ local function parse_rule(name, tbl) end -- Allow config override local rule = { - selector = deepcopy(selector), - backend = deepcopy(backend), + selector = lua_util.deepcopy(selector), + backend = lua_util.deepcopy(backend), config = {} } |