mod_s2s: Detect TLS compression
[prosody.git] / util / stanza.lua
index 600212a4d252470ee5dde1e6488ad8c0992da496..a0ab2a5aa0ae5d9be003fba34a2682931154ef81 100644 (file)
@@ -8,22 +8,16 @@
 
 
 local t_insert      =  table.insert;
-local t_concat      =  table.concat;
 local t_remove      =  table.remove;
 local t_concat      =  table.concat;
 local s_format      = string.format;
 local s_match       =  string.match;
 local tostring      =      tostring;
 local setmetatable  =  setmetatable;
-local getmetatable  =  getmetatable;
 local pairs         =         pairs;
 local ipairs        =        ipairs;
 local type          =          type;
-local next          =          next;
-local print         =         print;
-local unpack        =        unpack;
 local s_gsub        =   string.gsub;
-local s_char        =   string.char;
 local s_find        =   string.find;
 local os            =            os;
 
@@ -139,14 +133,14 @@ function stanza_mt:children()
 end
 
 function stanza_mt:childtags(name, xmlns)
-       xmlns = xmlns or self.attr.xmlns;
        local tags = self.tags;
        local start_i, max_i = 1, #tags;
        return function ()
                for i = start_i, max_i do
                        local v = tags[i];
                        if (not name or v.name == name)
-                       and (not xmlns or xmlns == v.attr.xmlns) then
+                       and ((not xmlns and self.attr.xmlns == v.attr.xmlns)
+                               or v.attr.xmlns == xmlns) then
                                start_i = i+1;
                                return v;
                        end
@@ -243,7 +237,7 @@ function stanza_mt.get_error(stanza)
        end
        type = error_tag.attr.type;
        
-       for child in error_tag:childtags() do
+       for _, child in ipairs(error_tag.tags) do
                if child.attr.xmlns == xmlns_stanzas then
                        if not text and child.name == "text" then
                                text = child:get_text();