aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_c2s.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2017-09-13 18:18:57 +0200
committerKim Alvefur <zash@zash.se>2017-09-13 18:18:57 +0200
commit12cdea49b391a7b2dea63856f4a689ed5668ea09 (patch)
tree7b86b1eab7b22d7ca285e37d847fd9f5dccb85a9 /plugins/mod_c2s.lua
parent9437d97a37b16df525d134101ec059c19f470fce (diff)
downloadprosody-12cdea49b391a7b2dea63856f4a689ed5668ea09.tar.gz
prosody-12cdea49b391a7b2dea63856f4a689ed5668ea09.zip
mod_c2s: Iterate over child tags instead of child nodes in stream error (fixes traceback from #987)
Diffstat (limited to 'plugins/mod_c2s.lua')
-rw-r--r--plugins/mod_c2s.lua18
1 files changed, 8 insertions, 10 deletions
diff --git a/plugins/mod_c2s.lua b/plugins/mod_c2s.lua
index 2bb919f8..fdb3b211 100644
--- a/plugins/mod_c2s.lua
+++ b/plugins/mod_c2s.lua
@@ -98,16 +98,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 "");