Browse Source

[Project] Unify cdb maps

tags/2.4
Vsevolod Stakhov 4 years ago
parent
commit
c935e8b491
3 changed files with 6 additions and 27 deletions
  1. 2
    1
      lualib/lua_maps.lua
  2. 2
    0
      src/libserver/logger/logger_private.h
  3. 2
    26
      src/plugins/lua/multimap.lua

+ 2
- 1
lualib/lua_maps.lua View File

@@ -67,7 +67,8 @@ local function maybe_adjust_type(data,mtype)
{'ipnet;', 'radix'},
{'set;', 'set'},
{'hash;', 'hash'},
{'plain;', 'hash'}
{'plain;', 'hash'},
{'cdb;', 'cdb'},
}

for _,t in ipairs(known_types) do

+ 2
- 0
src/libserver/logger/logger_private.h View File

@@ -16,6 +16,8 @@
#ifndef RSPAMD_LOGGER_PRIVATE_H
#define RSPAMD_LOGGER_PRIVATE_H

#include "logger.h"

/* How much message should be repeated before it is count to be repeated one */
#define REPEATS_MIN 3
#define REPEATS_MAX 300

+ 2
- 26
src/plugins/lua/multimap.lua View File

@@ -439,27 +439,7 @@ local function multimap_callback(task, rule)

local ret = false

if r['cdb'] then
if type(r.cdb) == 'string' then
local rspamd_cdb = require "rspamd_cdb"
local cdb = rspamd_cdb.create(r.cdb, task:get_ev_base())

if not cdb then
rspamd_logger.infox(task, 'cannot open cdb file %s', r.cdb)

return false
else
r.cdb = cdb
end
end
local srch = value
if type(value) == 'userdata' then
if value.class == 'rspamd{ip}' then
srch = value:tostring()
end
end
ret = r.cdb:lookup(srch)
elseif r.redis_key then
if r.redis_key then
-- Deal with hash name here: it can be either plain string or a selector
if type(r.redis_key) == 'string' then
ret = multimap_query_redis(r.redis_key, task, value, callback)
@@ -1094,11 +1074,7 @@ local function add_multimap_rule(key, newrule)
newrule.selector = selector
end
end
-- Check cdb flag
if type(newrule['map']) == 'string' and string.find(newrule['map'], '^cdb://.*$') then
newrule['cdb'] = newrule['map']
ret = true
elseif type(newrule['map']) == 'string' and
if type(newrule['map']) == 'string' and
string.find(newrule['map'], '^redis://.*$') then
if not redis_params then
rspamd_logger.infox(rspamd_config, 'no redis servers are specified, ' ..

Loading…
Cancel
Save