Mercurial > prosody-modules
view mod_muc_local_only/mod_muc_local_only.lua @ 6092:bd3ff802d883
mod_anti_spam: Fix another traceback for origin sessions without an IP
This is likely to be the case for stanzas originating from local hosts, for
example (so not true s2s). It should be safe to bypass the IP check for those.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sat, 28 Dec 2024 21:02:08 +0000 |
| parents | 221b6bee26e2 |
| children |
line wrap: on
line source
local jid = require "util.jid"; local st = require "util.stanza"; local local_rooms = module:get_option_inherited_set("muc_local_only", {}); module:hook("muc-occupant-pre-join", function (event) local room = event.room; if not local_rooms:contains(room.jid) then return; -- Not a protected room, ignore end local user_jid = event.occupant.bare_jid; local user_host = jid.host(user_jid); if not prosody.hosts[user_host] then local error_reply = st.error_reply(event.stanza, "cancel", "forbidden", "This group is only available to local users", room.jid); event.origin.send(error_reply); return true; end room:set_affiliation(true, user_jid, "member", "Granting access to local user"); end);
