aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2019-07-28 01:17:44 +0200
committerKim Alvefur <zash@zash.se>2019-07-28 01:17:44 +0200
commit0ecfe1d6f19acc2f17e93b42cf86f9c6ed019229 (patch)
tree899fd8bac3cabc9bc7687d8cd0f23dc29c38f284
parenta2e98728c048d8457d9947017e611cfc57b1baa3 (diff)
downloadprosody-0ecfe1d6f19acc2f17e93b42cf86f9c6ed019229.tar.gz
prosody-0ecfe1d6f19acc2f17e93b42cf86f9c6ed019229.zip
util.xmppstream: Inherit xml:lang from stream to stanzas (fixes #1401)
-rw-r--r--util/xmppstream.lua6
1 files changed, 6 insertions, 0 deletions
diff --git a/util/xmppstream.lua b/util/xmppstream.lua
index 58cbd18e..6aa1def3 100644
--- a/util/xmppstream.lua
+++ b/util/xmppstream.lua
@@ -64,6 +64,8 @@ local function new_sax_handlers(session, stream_callbacks, cb_handleprogress)
local stream_default_ns = stream_callbacks.default_ns;
+ local stream_lang = "en";
+
local stack = {};
local chardata, stanza = {};
local stanza_size = 0;
@@ -101,6 +103,7 @@ local function new_sax_handlers(session, stream_callbacks, cb_handleprogress)
if session.notopen then
if tagname == stream_tag then
non_streamns_depth = 0;
+ stream_lang = attr["xml:lang"] or stream_lang;
if cb_streamopened then
if lxp_supports_bytecount then
cb_handleprogress(stanza_size);
@@ -178,6 +181,9 @@ local function new_sax_handlers(session, stream_callbacks, cb_handleprogress)
cb_handleprogress(stanza_size);
end
stanza_size = 0;
+ if stanza.attr["xml:lang"] == nil then
+ stanza.attr["xml:lang"] = stream_lang;
+ end
if tagname ~= stream_error_tag then
cb_handlestanza(session, stanza);
else