aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2017-09-14 01:27:36 +0200
committerKim Alvefur <zash@zash.se>2017-09-14 01:27:36 +0200
commita5deab5ee0d2c40f082daa179e39167365d699ee (patch)
treea9b92a43a132af45694c9650f643c0b0ef2ae332
parent5e0e0d2723d721e3ffc6c1b8f35e8008e91d6786 (diff)
downloadprosody-a5deab5ee0d2c40f082daa179e39167365d699ee.tar.gz
prosody-a5deab5ee0d2c40f082daa179e39167365d699ee.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.lua18
-rw-r--r--plugins/mod_s2s/mod_s2s.lua18
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 "");