mirror of
https://github.com/rspamd/rspamd.git
synced 2024-09-13 15:45:47 +02:00
[Project] Unify cdb maps
This commit is contained in:
parent
557c870057
commit
c935e8b491
@ -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
|
||||
|
@ -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
|
||||
|
@ -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…
Reference in New Issue
Block a user