comparison mod_smacks_offline/mod_smacks_offline.lua @ 3936:a3693e0d26b8

mod_smacks_offline: this module is obsoleted by latest mod_smacks update
author tmolitor <thilo@eightysoft.de>
date Sun, 08 Mar 2020 19:50:43 +0100
parents b912cb8e0b3c
children
comparison
equal deleted inserted replaced
3935:c49fea05772e 3936:a3693e0d26b8
1 local t_insert = table.insert; 1 -- this module is deprecated, log an error and load the superseding module instead
2 module:depends"smacks"
2 3
3 local mod_smacks = module:depends"smacks" 4 module:log("error", "mod_smacks_offline is deprecated! Just use mod_smacks!");
4
5 local function store_unacked_stanzas(session)
6 local queue = session.outgoing_stanza_queue;
7 local replacement_queue = {};
8 session.outgoing_stanza_queue = replacement_queue;
9
10 for _, stanza in ipairs(queue) do
11 if stanza.name == "message" and stanza.attr.xmlns == nil and
12 ( stanza.attr.type == "chat" or ( stanza.attr.type or "normal" ) == "normal" ) then
13 module:fire_event("message/offline/handle", { origin = session, stanza = stanza } )
14 else
15 t_insert(replacement_queue, stanza);
16 end
17 end
18 end
19
20 local handle_unacked_stanzas = mod_smacks.handle_unacked_stanzas;
21
22 local host_sessions = prosody.hosts[module.host].sessions;
23 mod_smacks.handle_unacked_stanzas = function (session)
24 if session.username then
25 local sessions = host_sessions[session.username].sessions;
26 if next(sessions) == session.resource and next(sessions, session.resource) == nil then
27 store_unacked_stanzas(session)
28 end
29 end
30 return handle_unacked_stanzas(session);
31 end
32
33 function module.unload()
34 mod_smacks.handle_unacked_stanzas = handle_unacked_stanzas;
35 end