Browse Source

[Feature] Add universal function to parse redis servers for plugins

tags/1.3.0
Vsevolod Stakhov 8 years ago
parent
commit
f7d54ff789
1 changed files with 56 additions and 0 deletions
  1. 56
    0
      src/lua/global_functions.lua

+ 56
- 0
src/lua/global_functions.lua View File

@@ -0,0 +1,56 @@

-- This function parses redis server definition using either
-- specific server string for this module or global
-- redis section
function rspamd_parse_redis_server(module_name)

local default_port = 6379
local logger = require "rspamd_logger"

local function try_load_redis_servers(options)
local key = options['servers']

if not key then key = options['server'] end

if key then
local upstreams = upstream_list.create(rspamd_config, key, default_port)

if upstreams then
return upstreams
end
end

return nil
end

local opts = rspamd_config:get_all_opt(module_name)
local ret

if opts then
ret = try_load_redis_servers(opts)
end

if ret then
return ret
end

opts = rspamd_config:get_all_opt('redis')

if opts then
if opts[module_name] then
ret = try_load_redis_servers(opts[module_name])
if ret then
return ret
end
else
ret = try_load_redis_servers(opts)

if ret then
logger.infox(rspamd_config, "using default redis server for module %s",
module_name)
end
end
end

return ret
end

Loading…
Cancel
Save