Mercurial > prosody-modules
comparison mod_smacks/mod_smacks.lua @ 4445:e13eb0f851c8
mod_smacks: Explicitly request ack when leaving CSI-inactive mode
There may be a lot of unacked stanzas in the queue, might as well...
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 16 Feb 2021 22:49:44 +0100 |
parents | 2f5e52d67928 |
children | 3d593b612e07 |
comparison
equal
deleted
inserted
replaced
4444:2f5e52d67928 | 4445:e13eb0f851c8 |
---|---|
1 -- XEP-0198: Stream Management for Prosody IM | 1 -- XEP-0198: Stream Management for Prosody IM |
2 -- | 2 -- |
3 -- Copyright (C) 2010-2015 Matthew Wild | 3 -- Copyright (C) 2010-2015 Matthew Wild |
4 -- Copyright (C) 2010 Waqas Hussain | 4 -- Copyright (C) 2010 Waqas Hussain |
5 -- Copyright (C) 2012-2015 Kim Alvefur | 5 -- Copyright (C) 2012-2021 Kim Alvefur |
6 -- Copyright (C) 2012 Thijs Alkemade | 6 -- Copyright (C) 2012 Thijs Alkemade |
7 -- Copyright (C) 2014 Florian Zeitz | 7 -- Copyright (C) 2014 Florian Zeitz |
8 -- Copyright (C) 2016-2020 Thilo Molitor | 8 -- Copyright (C) 2016-2020 Thilo Molitor |
9 -- | 9 -- |
10 -- This project is MIT/X11 licensed. Please see the | 10 -- This project is MIT/X11 licensed. Please see the |
639 return true; | 639 return true; |
640 end | 640 end |
641 module:hook_stanza(xmlns_sm2, "resume", function (session, stanza) return handle_resume(session, stanza, xmlns_sm2); end); | 641 module:hook_stanza(xmlns_sm2, "resume", function (session, stanza) return handle_resume(session, stanza, xmlns_sm2); end); |
642 module:hook_stanza(xmlns_sm3, "resume", function (session, stanza) return handle_resume(session, stanza, xmlns_sm3); end); | 642 module:hook_stanza(xmlns_sm3, "resume", function (session, stanza) return handle_resume(session, stanza, xmlns_sm3); end); |
643 | 643 |
644 module:hook("csi-client-active", function (event) | |
645 request_ack_if_needed(event.origin, true, "csi-active", nil); | |
646 end); | |
647 | |
644 local function handle_read_timeout(event) | 648 local function handle_read_timeout(event) |
645 local session = event.session; | 649 local session = event.session; |
646 if session.smacks then | 650 if session.smacks then |
647 if session.awaiting_ack then | 651 if session.awaiting_ack then |
648 if session.awaiting_ack_timer then | 652 if session.awaiting_ack_timer then |