aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/lua/rbl.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/lua/rbl.lua')
-rw-r--r--src/plugins/lua/rbl.lua13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua
index b6467c103..a36131b1b 100644
--- a/src/plugins/lua/rbl.lua
+++ b/src/plugins/lua/rbl.lua
@@ -21,6 +21,7 @@ end
local hash = require 'rspamd_cryptobox_hash'
local rspamd_logger = require 'rspamd_logger'
+local rspamd_regexp = require 'rspamd_regexp'
local rspamd_util = require 'rspamd_util'
local rspamd_ip = require "rspamd_ip"
local fun = require 'fun'
@@ -225,6 +226,18 @@ matchers.luapattern = function(to_match, pattern)
return string.find(to_match, '^' .. pattern .. '$') and true or false
end
+matchers.regexp = function(to_match, pattern)
+ local re = rspamd_regexp.get_cached(pattern)
+ if not re then
+ re = rspamd_regexp.create_cached(pattern)
+ if not re then
+ rspamd_logger.errx('regexp did not compile: %s', pattern)
+ return false
+ end
+ end
+ return re:match(to_match)
+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