comparison mod_csi_grace_period/mod_csi_grace_period.lua @ 3680:7570976318a9

mod_csi_grace_period: Fix to store state on correct table Can cause problems for things that iterate the hosts sessions table. I blame autocomplete.
author Kim Alvefur <zash@zash.se>
date Sun, 29 Sep 2019 00:32:17 +0200
parents 5c37d759b1e2
children e1e337dc05b6
comparison
equal deleted inserted replaced
3679:f9a93d7b6c50 3680:7570976318a9
16 if not session then return; end 16 if not session then return; end
17 17
18 local user_session = user_sessions[session.username]; 18 local user_session = user_sessions[session.username];
19 if not user_session then return; end 19 if not user_session then return; end
20 20
21 if user_sessions.grace_time_start then 21 if user_session.grace_time_start then
22 if user_sessions.last_active == session.resource then 22 if user_session.last_active == session.resource then
23 return; 23 return;
24 end 24 end
25 if (os.time() - user_sessions.grace_time_start) < grace_period then 25 if (os.time() - user_session.grace_time_start) < grace_period then
26 session.log("debug", "Within grace period, probably seen"); 26 session.log("debug", "Within grace period, probably seen");
27 return false; 27 return false;
28 end 28 end
29 end 29 end
30 end, 1); 30 end, 1);
33 local stanza, origin = event.stanza, event.origin; 33 local stanza, origin = event.stanza, event.origin;
34 local user_session = user_sessions[origin.username]; 34 local user_session = user_sessions[origin.username];
35 if not user_session then return; end 35 if not user_session then return; end
36 36
37 if stanza:get_child("body") or stanza:get_child("active", "http://jabber.org/protocol/chatstates") then 37 if stanza:get_child("body") or stanza:get_child("active", "http://jabber.org/protocol/chatstates") then
38 user_sessions.last_active = origin.resource; 38 user_session.last_active = origin.resource;
39 user_sessions.grace_time_start = os.time(); 39 user_session.grace_time_start = os.time();
40 end 40 end
41 end 41 end
42 module:hook("pre-message/full", on_activity); 42 module:hook("pre-message/full", on_activity);
43 module:hook("pre-message/bare", on_activity); 43 module:hook("pre-message/bare", on_activity);
44 module:hook("pre-message/host", on_activity); 44 module:hook("pre-message/host", on_activity);