1local rspamd_ip = require 'rspamd_ip' 2local rspamd_logger = require 'rspamd_logger' 3 4local radix_map = rspamd_config:add_map ({ 5 url = rspamd_env.RADIX_MAP, 6 type = 'radix', 7}) 8 9local map_map = rspamd_config:add_map ({ 10 url = rspamd_env.MAP_MAP, 11 type = 'map', 12}) 13 14local regexp_map = rspamd_config:add_map ({ 15 url = rspamd_env.REGEXP_MAP, 16 type = 'regexp', 17}) 18 19rspamd_config:register_symbol({ 20 name = 'RADIX_KV', 21 score = 1.0, 22 callback = function() 23 local sip = {'8.8.8.8', '::1', '192.168.1.1', '10.0.1.1'} 24 local expected = {'test one', 'another', '1', false} 25 for i = 1, #sip do 26 if (radix_map:get_key(rspamd_ip.from_string(sip[i])) ~= expected[i]) then 27 local rip = rspamd_ip.from_string(sip[i]) 28 local val = radix_map:get_key(rip) 29 return true, rspamd_logger.slog('plain: get_key(%s) [%s] -> %s [%s] [expected %s]', rip, type(rip), val, type(val), expected[i]) 30 end 31 if (radix_map:get_key(sip[i]) ~= expected[i]) then 32 local val = radix_map:get_key(sip[i]) 33 return true, rspamd_logger.slog('string: get_key(%s) [%s] -> %s [%s] [expected %s]', sip[i], type(sip[i]), val, type(val), expected[i]) 34 end 35 end 36 return true, 'no worry' 37 end 38}) 39 40rspamd_config:register_symbol({ 41 name = 'MAP_KV', 42 score = 1.0, 43 callback = function() 44 local str = {'foo', 'asdf.example.com', 'asdf', 'barf'} 45 local expected = {'bar', 'value', '', false} 46 for i = 1, #str do 47 if (map_map:get_key(str[i]) ~= expected[i]) then 48 local val = map_map:get_key(str[i]) 49 return true, rspamd_logger.slog('get_key(%s) [%s] -> %s [%s] [expected %s]', str[i], type(str[i]), val, type(val), expected[i]) 50 end 51 end 52 return true, 'no worry' 53 end, 54}) 55 56rspamd_config:register_symbol({ 57 name = 'REGEXP_KV', 58 score = 1.0, 59 callback = function() 60 local str = {'foo', 'asdf.example.com', 'asdf', 'barf'} 61 local expected = {'bar', 'value', '1', false} 62 for i = 1, #str do 63 if (regexp_map:get_key(str[i]) ~= expected[i]) then 64 local val = regexp_map:get_key(str[i]) 65 return true, rspamd_logger.slog('get_key(%s) [%s] -> %s [%s] [expected %s]', str[i], type(str[i]), val, type(val), expected[i]) 66 end 67 end 68 return true, 'no worry' 69 end, 70}) 71