Mercurial > prosody-modules
view mod_muc_ping/mod_muc_ping.lua @ 4049:78f1de5301fc
mod_adhoc_dataforms_demo: Fix duplicate field prevention
It's supposed to only include each type of form field once per form at
most but it didn't note which fields it had added already. No idea what
the probability was anyways, probably pretty low.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 23 Jun 2020 19:40:55 +0200 |
parents | a0ca5d0a49ba |
children |
line wrap: on
line source
local st = require "util.stanza"; local jid_bare = import("util.jid", "bare"); local mod_muc = module:depends"muc"; local rooms = rawget(mod_muc, "rooms"); if not rooms then module:log("warn", "mod_%s is compatible with Prosody up to 0.10.x", module.name); return; end module:hook("iq/full", function (event) local origin, stanza = event.origin, event.stanza; if stanza.attr.type ~= "get" or not stanza:get_child("ping", "urn:xmpp:ping") then return; end local from = stanza.attr.from; local room_nick = stanza.attr.to; local room_jid = jid_bare(room_nick); local room = rooms[room_jid]; if not room then return; end if room._jid_nick[from] == room_nick then origin.send(st.reply(stanza)); return true; end end); module:hook("muc-disco#info", function(event) event.reply:tag("feature", {var="urn:xmpp:ping"}):up(); event.reply:tag("feature", {var = "http://jabber.org/protocol/muc#self-ping-optimization"}):up(); end);