Software /
code /
prosody
Comparison
plugins/muc/muc.lib.lua @ 6923:f755e0bdc60a
muc.lib: Fix pattern so that it doesn't match hashes containing null bytes, causing dropped stanzas (thanks Jitsi folk!)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 17 Nov 2015 17:01:25 +0000 |
parent | 6049:6d410ffd6e13 |
child | 6924:c37ad3e1fdd9 |
child | 7011:2d5751b2f21c |
comparison
equal
deleted
inserted
replaced
6922:e0672860d208 | 6923:f755e0bdc60a |
---|---|
359 | 359 |
360 return from_nick, to_jid, base64.encode(to_jid.."\0"..stanza.attr.id.."\0"..md5(from_jid)); | 360 return from_nick, to_jid, base64.encode(to_jid.."\0"..stanza.attr.id.."\0"..md5(from_jid)); |
361 end | 361 end |
362 local function deconstruct_stanza_id(room, stanza) | 362 local function deconstruct_stanza_id(room, stanza) |
363 local from_jid_possiblybare, to_nick = stanza.attr.from, stanza.attr.to; | 363 local from_jid_possiblybare, to_nick = stanza.attr.from, stanza.attr.to; |
364 local from_jid, id, to_jid_hash = (base64.decode(stanza.attr.id) or ""):match("^(.+)%z(.*)%z(.+)$"); | 364 local from_jid, id, to_jid_hash = (base64.decode(stanza.attr.id) or ""):match("^(%Z+)%z(%Z*)%z(.+)$"); |
365 local from_nick = room._jid_nick[from_jid]; | 365 local from_nick = room._jid_nick[from_jid]; |
366 | 366 |
367 if not(from_nick) then return; end | 367 if not(from_nick) then return; end |
368 if not(from_jid_possiblybare == from_jid or from_jid_possiblybare == jid_bare(from_jid)) then return; end | 368 if not(from_jid_possiblybare == from_jid or from_jid_possiblybare == jid_bare(from_jid)) then return; end |
369 | 369 |