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.
 
 
 
 
 
 

55 lines
1.4 KiB

rspamd_config:register_symbol({
name = 'TEST_TLD',
score = 1.0,
callback = function()
local prefixes = {
'',
'example.'
}
local test_domains = {
'example.ac',
'example.b.br',
'example.co',
'example.com',
'example.co.za',
'example.in.net',
'example.kawasaki.jp',
'example.net',
'example.net.in',
'example.nom.br',
'example.org',
'example.org.ac',
'example.ru.com',
'example.za.net',
'example.za.org',
'org.org.za',
}
local worry = {}
local rspamd_mempool = require 'rspamd_mempool'
local rspamd_url = require 'rspamd_url'
local rspamd_util = require 'rspamd_util'
local pool = rspamd_mempool.create()
for _, d in ipairs(test_domains) do
(function()
for _, p in ipairs(prefixes) do
local test = rspamd_util.get_tld(p .. d)
if (test ~= d) then
table.insert(worry, 'util.get_tld:' .. p .. d .. ':' .. test)
return
end
local u = rspamd_url.create(pool, p .. d)
test = u:get_tld()
if (test ~= d) then
table.insert(worry, 'url.get_tld:' .. p .. d .. ':' .. test)
return
end
end
end)()
end
if (#worry == 0) then
return true, "no worry"
else
return true, table.concat(worry, ",")
end
end
})