Mercurial > prosody-modules
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); |