Browse Source

[Minor] Updated Lua to comply the new call semantic

tags/1.8.0
Mikhail Galanin 5 years ago
parent
commit
1b5cef0e88
3 changed files with 38 additions and 17 deletions
  1. 12
    1
      lualib/lua_redis.lua
  2. 24
    0
      lualib/lua_util.lua
  3. 2
    16
      src/plugins/lua/reputation.lua

+ 12
- 1
lualib/lua_redis.lua View File

@@ -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

+ 24
- 0
lualib/lua_util.lua View File

@@ -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 = {}

+ 2
- 16
src/plugins/lua/reputation.lua View File

@@ -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 = {}
}


Loading…
Cancel
Save