diff mod_firewall/mod_firewall.lua @ 6502:b15601203d0d

mod_firewall: Support 'FROM IP' and 'FROM SUBNET' conditions
author Matthew Wild <mwild1@gmail.com>
date Thu, 26 Mar 2026 13:33:44 +0000
parents 547feb8181eb
children ce716e5e0fee
line wrap: on
line diff
--- a/mod_firewall/mod_firewall.lua	Wed Mar 25 18:52:10 2026 +0000
+++ b/mod_firewall/mod_firewall.lua	Thu Mar 26 13:33:44 2026 +0000
@@ -275,6 +275,17 @@
 	iplib = {
 		global_code = [[local iplib = require "util.ip";]];
 	};
+	session_parsed_ip = {
+		local_code = [[local session_parsed_ip = iplib.new_ip(session.ip)]];
+		depends = { "iplib" };
+	};
+	parsed_ip = {
+		local_code = function (parsed_ip_spec)
+			local ip_hash, ip_str = parsed_ip_spec:match("^(%x+):(.+)$");
+			local code = ([[local parsed_ip_%s = iplib.new_ip(%q)]]):format(ip_hash, ip_str)
+			return code, { "iplib" };
+		end;
+	};
 	geoip_country = {
 		global_code = [[
 local geoip_country = require "geoip.country";