Mercurial > prosody-modules
changeset 2766:314cebb3071e
mod_pastebin: Check for MUC presence before handling a message.
Fixes #955.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Tue, 19 Sep 2017 18:47:18 +0200 |
parents | 85cf9a8b4020 |
children | e1edf643fbb1 |
files | mod_pastebin/mod_pastebin.lua |
diffstat | 1 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_pastebin/mod_pastebin.lua Mon Sep 18 16:39:02 2017 +0100 +++ b/mod_pastebin/mod_pastebin.lua Tue Sep 19 18:47:18 2017 +0200 @@ -5,6 +5,8 @@ local os_time = os.time; local t_insert, t_remove = table.insert, table.remove; local add_task = require "util.timer".add_task; +local jid_bare = require "util.jid".bare; +local muc_rooms = module:depends "muc".rooms; local utf8_pattern = "[\194-\244][\128-\191]*$"; local function drop_invalid_utf8(seq) @@ -68,6 +70,15 @@ function check_message(data) local origin, stanza = data.origin, data.stanza; + -- Only check for MUC presence when loaded on a component. + if module:get_host_type() == "component" then + local room = muc_rooms[jid_bare(stanza.attr.to)]; + if not room then return; end + + local nick = room._jid_nick[stanza.attr.from]; + if not nick then return; end + end + local body, bodyindex, htmlindex; for k,v in ipairs(stanza) do if v.name == "body" then