diff options
author | Tobias Markmann <tm@ayena.de> | 2008-11-23 20:44:48 +0100 |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2008-11-23 20:44:48 +0100 |
commit | 560094822d86f10450567785544cfcca61dd8a3b (patch) | |
tree | c2737280276b8ec3642cae5ae644e81da621be04 /util/stanza.lua | |
parent | 3bc6fdb526dec6b56dab9208461d5b2f4db08006 (diff) | |
parent | 6db47b60f4574bc8e5a34eacac8a67ccd52107dd (diff) | |
download | prosody-560094822d86f10450567785544cfcca61dd8a3b.tar.gz prosody-560094822d86f10450567785544cfcca61dd8a3b.zip |
Merging with main branch.
Diffstat (limited to 'util/stanza.lua')
-rw-r--r-- | util/stanza.lua | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/util/stanza.lua b/util/stanza.lua index 5a6ba8c5..df0d43ff 100644 --- a/util/stanza.lua +++ b/util/stanza.lua @@ -30,6 +30,11 @@ end function stanza_mt:query(xmlns) return self:tag("query", { xmlns = xmlns }); end + +function stanza_mt:body(text, attr) + return self:tag("body", attr):text(text); +end + function stanza_mt:tag(name, attrs) local s = stanza(name, attrs); (self.last_add[#self.last_add] or self):add_direct_child(s); @@ -103,7 +108,7 @@ function stanza_mt.__tostring(t) local attr_string = ""; if t.attr then - for k, v in pairs(t.attr) do if type(k) == "string" then attr_string = attr_string .. s_format(" %s='%s'", k, tostring(v)); end end + for k, v in pairs(t.attr) do if type(k) == "string" then attr_string = attr_string .. s_format(" %s='%s'", k, xml_escape(tostring(v))); end end end return s_format("<%s%s>%s</%s>", t.name, attr_string, children_text, t.name); end @@ -111,7 +116,7 @@ end function stanza_mt.top_tag(t) local attr_string = ""; if t.attr then - for k, v in pairs(t.attr) do if type(k) == "string" then attr_string = attr_string .. s_format(" %s='%s'", k, tostring(v)); end end + for k, v in pairs(t.attr) do if type(k) == "string" then attr_string = attr_string .. s_format(" %s='%s'", k, xml_escape(tostring(v))); end end end return s_format("<%s%s>", t.name, attr_string); end |