mirror of https://github.com/rspamd/rspamd.git
Rapid spam filtering system
https://rspamd.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.2 KiB
70 lines
2.2 KiB
local rspamd_ip = require 'rspamd_ip'
|
|
local rspamd_logger = require 'rspamd_logger'
|
|
|
|
local radix_map = rspamd_config:add_map ({
|
|
url = '${RADIX_MAP}',
|
|
type = 'radix',
|
|
})
|
|
|
|
local map_map = rspamd_config:add_map ({
|
|
url = '${MAP_MAP}',
|
|
type = 'map',
|
|
})
|
|
|
|
local regexp_map = rspamd_config:add_map ({
|
|
url = '${REGEXP_MAP}',
|
|
type = 'regexp',
|
|
})
|
|
|
|
rspamd_config:register_symbol({
|
|
name = 'RADIX_KV',
|
|
score = 1.0,
|
|
callback = function()
|
|
local sip = {'8.8.8.8', '::1', '192.168.1.1', '10.0.1.1'}
|
|
local expected = {'test one', 'another', '1', false}
|
|
for i = 1, #sip do
|
|
if (radix_map:get_key(rspamd_ip.from_string(sip[i])) ~= expected[i]) then
|
|
local rip = rspamd_ip.from_string(sip[i])
|
|
local val = radix_map:get_key(rip)
|
|
return true, rspamd_logger.slog('get_key(%s) [%s] -> %s [%s] [expected %s]', rip, type(rip), val, type(val), expected[i])
|
|
end
|
|
if (radix_map:get_key(sip[i]) ~= expected[i]) then
|
|
local val = radix_map:get_key(sip[i])
|
|
return true, rspamd_logger.slog('get_key(%s) [%s] -> %s [%s] [expected %s]', sip[i], type(sip[i]), val, type(val), expected[i])
|
|
end
|
|
end
|
|
return true, 'no worry'
|
|
end
|
|
})
|
|
|
|
rspamd_config:register_symbol({
|
|
name = 'MAP_KV',
|
|
score = 1.0,
|
|
callback = function()
|
|
local str = {'foo', 'asdf.example.com', 'asdf', 'barf'}
|
|
local expected = {'bar', 'value', '', false}
|
|
for i = 1, #str do
|
|
if (map_map:get_key(str[i]) ~= expected[i]) then
|
|
local val = map_map:get_key(str[i])
|
|
return true, rspamd_logger.slog('get_key(%s) [%s] -> %s [%s] [expected %s]', str[i], type(str[i]), val, type(val), expected[i])
|
|
end
|
|
end
|
|
return true, 'no worry'
|
|
end,
|
|
})
|
|
|
|
rspamd_config:register_symbol({
|
|
name = 'REGEXP_KV',
|
|
score = 1.0,
|
|
callback = function()
|
|
local str = {'foo', 'asdf.example.com', 'asdf', 'barf'}
|
|
local expected = {'bar', 'value', '1', false}
|
|
for i = 1, #str do
|
|
if (regexp_map:get_key(str[i]) ~= expected[i]) then
|
|
local val = regexp_map:get_key(str[i])
|
|
return true, rspamd_logger.slog('get_key(%s) [%s] -> %s [%s] [expected %s]', str[i], type(str[i]), val, type(val), expected[i])
|
|
end
|
|
end
|
|
return true, 'no worry'
|
|
end,
|
|
})
|