diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/mod_message.lua | 7 | ||||
-rw-r--r-- | plugins/mod_presence.lua | 11 |
2 files changed, 8 insertions, 10 deletions
diff --git a/plugins/mod_message.lua b/plugins/mod_message.lua index e38b60e6..6ac23ab2 100644 --- a/plugins/mod_message.lua +++ b/plugins/mod_message.lua @@ -14,7 +14,6 @@ local st = require "util.stanza"; local jid_bare = require "util.jid".bare; local jid_split = require "util.jid".split; local user_exists = require "core.usermanager".user_exists; -local offlinemanager = require "core.offlinemanager"; local t_insert = table.insert; local function process_to_bare(bare, origin, stanza) @@ -47,7 +46,11 @@ local function process_to_bare(bare, origin, stanza) local node, host = jid_split(bare); if user_exists(node, host) then -- TODO apply the default privacy list - offlinemanager.store(node, host, stanza); + + module:fire_event('message/offline/store', { + origin = origin, + stanza = stanza, + }); else origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); end diff --git a/plugins/mod_presence.lua b/plugins/mod_presence.lua index 65abe665..933aac62 100644 --- a/plugins/mod_presence.lua +++ b/plugins/mod_presence.lua @@ -22,7 +22,6 @@ local NULL = {}; local rostermanager = require "core.rostermanager"; local sessionmanager = require "core.sessionmanager"; -local offlinemanager = require "core.offlinemanager"; local function select_top_resources(user) local priority = 0; @@ -116,13 +115,9 @@ function handle_normal_presence(origin, stanza) end if priority >= 0 then - local offline = offlinemanager.load(node, host); - if offline then - for _, msg in ipairs(offline) do - origin.send(msg); -- FIXME do we need to modify to/from in any way? - end - offlinemanager.deleteAll(node, host); - end + local event = { origin = origin } + module:fire_event('message/offline/broadcast', event); + module:fire_event('message/offline/delete', event); end end if stanza.attr.type == "unavailable" then |