# HG changeset patch # User Matthew Wild # Date 1487582915 0 # Node ID 0404476ecfe3da8ad554cecbd5ec7334ca72a7b5 # Parent a3a18d09ae8a9052833a5a5de72923bc452af82a mod_firewall: More meta() enhancements diff -r a3a18d09ae8a -r 0404476ecfe3 mod_firewall/mod_firewall.lua --- a/mod_firewall/mod_firewall.lua Mon Feb 20 09:26:27 2017 +0000 +++ b/mod_firewall/mod_firewall.lua Mon Feb 20 09:28:35 2017 +0000 @@ -85,8 +85,10 @@ else code = "stanza.attr["..("%q"):format(attr_name).."]"; end + elseif expr:match("^%w+#$") then + code = ("stanza:get_child_text(%q)"):format(expr:sub(1, -2)); else - code = "(stanza:find("..("%q"):format(expr)..") or "..("%q"):format("")..")"; + code = ("stanza:find(%q)"):format(expr); end if func_chain then for func_name in func_chain:gmatch("|(%w+)") do @@ -111,7 +113,7 @@ end end end - return "\"..(("..code..") or \"\")..\""; + return "\"..tostring(("..code..") or \"\")..\""; end) :gsub("$$(%a+)", extra or {}) :gsub([[^""%.%.]], "")