diff options
author | Kim Alvefur <zash@zash.se> | 2017-09-14 01:27:36 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2017-09-14 01:27:36 +0200 |
commit | ed9dafe47250ee388867c429d6cef7965e1689da (patch) | |
tree | a9b92a43a132af45694c9650f643c0b0ef2ae332 | |
parent | c9bf59191b8e4eb56979b0711cea51179f29b729 (diff) | |
download | prosody-ed9dafe47250ee388867c429d6cef7965e1689da.tar.gz prosody-ed9dafe47250ee388867c429d6cef7965e1689da.zip |
mod_component, mod_s2s: Iterate over child tags instead of child nodes (can include text) in stream error (same as 176b7f4e4ac9)
-rw-r--r-- | plugins/mod_component.lua | 18 | ||||
-rw-r--r-- | plugins/mod_s2s/mod_s2s.lua | 18 |
2 files changed, 16 insertions, 20 deletions
diff --git a/plugins/mod_component.lua b/plugins/mod_component.lua index 11abab79..acd70c60 100644 --- a/plugins/mod_component.lua +++ b/plugins/mod_component.lua @@ -151,16 +151,14 @@ function stream_callbacks.error(session, error, data, data2) session:close("not-well-formed"); elseif error == "stream-error" then local condition, text = "undefined-condition"; - for child in data:children() do - if child.attr.xmlns == xmlns_xmpp_streams then - if child.name ~= "text" then - condition = child.name; - else - text = child:get_text(); - end - if condition ~= "undefined-condition" and text then - break; - end + for child in data:childtags(nil, xmlns_xmpp_streams) do + if child.name ~= "text" then + condition = child.name; + else + text = child:get_text(); + end + if condition ~= "undefined-condition" and text then + break; end end text = condition .. (text and (" ("..text..")") or ""); diff --git a/plugins/mod_s2s/mod_s2s.lua b/plugins/mod_s2s/mod_s2s.lua index e038e5b4..10b81a17 100644 --- a/plugins/mod_s2s/mod_s2s.lua +++ b/plugins/mod_s2s/mod_s2s.lua @@ -416,16 +416,14 @@ function stream_callbacks.error(session, error, data) session:close("not-well-formed"); elseif error == "stream-error" then local condition, text = "undefined-condition"; - for child in data:children() do - if child.attr.xmlns == xmlns_xmpp_streams then - if child.name ~= "text" then - condition = child.name; - else - text = child:get_text(); - end - if condition ~= "undefined-condition" and text then - break; - end + for child in data:childtags(nil, xmlns_xmpp_streams) do + if child.name ~= "text" then + condition = child.name; + else + text = child:get_text(); + end + if condition ~= "undefined-condition" and text then + break; end end text = condition .. (text and (" ("..text..")") or ""); |