Mercurial > prosody-modules
diff mod_firewall/mod_firewall.lua @ 2524:0404476ecfe3
mod_firewall: More meta() enhancements
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 20 Feb 2017 09:28:35 +0000 |
parents | c6fd8975704b |
children | a35d85cfda92 |
line wrap: on
line diff
--- 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("<undefined>")..")"; + 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 \"<undefined>\")..\""; + return "\"..tostring(("..code..") or \"<undefined>\")..\""; end) :gsub("$$(%a+)", extra or {}) :gsub([[^""%.%.]], "")