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