# HG changeset patch # User Matthew Wild # Date 1487673473 0 # Node ID a1b6a6b0aabb4520e73394f0694e4d9171ec3fec # Parent acdc1767a715f6bba0317271e6b2b4dba664bc77 mod_firewall: Reinstate the ability to set a default for stanza expressions diff -r acdc1767a715 -r a1b6a6b0aabb mod_firewall/mod_firewall.lua --- a/mod_firewall/mod_firewall.lua Tue Feb 21 10:37:10 2017 +0000 +++ b/mod_firewall/mod_firewall.lua Tue Feb 21 10:37:53 2017 +0000 @@ -70,6 +70,11 @@ end) :gsub("$(%b<>)", function (expr) expr = expr:sub(2,-2); + local default = ""; + expr = expr:gsub("||(%b\"\")$", function (s) + default = s:sub(2,-2); + return ""; + end); local func_chain = expr:match("|[%w|]+$"); if func_chain then expr = expr:sub(1, -1-#func_chain); @@ -113,14 +118,13 @@ end end end - return "\"..tostring(("..code..") or \"\")..\""; + return "\"..tostring("..code.." or "..("%q"):format(default)..")..\""; end) :gsub("$$(%a+)", extra or {}) :gsub([[^""%.%.]], "") :gsub([[%.%.""$]], "")); end - -- Dependency locations: -- --