ipv6 = ts.boolean:is_optional(),
is_whitelist = ts.boolean:is_optional(),
local_exclude_ip_map = ts.string:is_optional(),
- matcher = ts.one_of { "equality", "luapattern", "radix", "regexp" }:is_optional(),
+ matcher = ts.one_of { "equality", "glob", "luapattern", "radix", "regexp" }:is_optional(),
monitored_address = ts.string:is_optional(),
no_ip = ts.boolean:is_optional(),
process_script = ts.string:is_optional(),
return map and map:get_key(to_match) or false
end
+matchers.glob = function(_, to_match, _, map)
+ return map and map:get_key(to_match) or false
+end
+
local function rbl_dns_process(task, rbl, to_resolve, results, err, resolve_table_elt, match)
local function make_option(ip, label)
if ip then
return callback_f, string.format('checks: %s', table.concat(description, ','))
end
+local map_match_types = {
+ glob = true,
+ radix = true,
+ regexp = true,
+}
+
local function add_rbl(key, rbl, global_opts)
if not rbl.symbol then
rbl.symbol = key:upper()
end
local match_type = rbl.matcher
- if match_type and rbl.returncodes and (match_type == 'radix' or match_type == 'regexp') then
+ if match_type and rbl.returncodes and map_match_types[match_type] then
if not rbl.returncodes_maps then
rbl.returncodes_maps = {}
end
images = true;
rbl = "test9.uribl";
}
- URIBL_NUMERIC_CONTENT {
+ UNKNOWN_URIBL_NUMERIC_CONTENT {
checks = ["numeric_urls"];
content_urls = true;
rbl = "test9.uribl";
+ matcher = "glob";
+ returncodes = {
+ URIBL_NUMERIC_CONTENT = "*.*.*.*";
+ }
}
URIBL_NUMERIC_EVERYTHING {
checks = ["numeric_urls"];