comparison mod_muc_occupant_id/mod_muc_occupant_id.lua @ 4010:ae27f3359df8

mod_muc_occupant_id: Don't store occupant-ids. It seems it's cheap enough to generate so don't unnecessarily store everyone's occupant-ids forever.
author Maxime “pep” Buquet <pep@bouah.net>
date Tue, 05 May 2020 16:27:59 +0200
parents cf682a02b6d8
children
comparison
equal deleted inserted replaced
4009:362997ededb1 4010:ae27f3359df8
15 15
16 if room._data.occupant_id_salt == nil then 16 if room._data.occupant_id_salt == nil then
17 room._data.occupant_id_salt = uuid.generate(); 17 room._data.occupant_id_salt = uuid.generate();
18 end 18 end
19 19
20 if room._data.occupant_ids == nil then 20 -- XXX: Temporary not-so-important migration measure. Remove this next time
21 room._data.occupant_ids = {}; 21 -- somebody looks at it. This module used to store every participant's
22 end 22 -- occupant-id all the time forever.
23 room._data.occupant_ids = nil;
23 24
24 if room._data.occupant_ids[bare] == nil then 25 return b64encode(hmac_sha256(bare, room._data.occupant_id_salt));
25 local unique_id = b64encode(hmac_sha256(bare, room._data.occupant_id_salt));
26 room._data.occupant_ids[bare] = unique_id;
27 end
28
29 return room._data.occupant_ids[bare];
30 end 26 end
31 27
32 local function update_occupant(event) 28 local function update_occupant(event)
33 local stanza, room, occupant, dest_occupant = event.stanza, event.room, event.occupant, event.dest_occupant; 29 local stanza, room, occupant, dest_occupant = event.stanza, event.room, event.occupant, event.dest_occupant;
34 30