view mod_auto_answer_disco_info/mod_auto_answer_disco_info.lua @ 3587:c24d43ababc6

mod_storage_xmlarchive: Try harder to limit range of time to check Fixes read of entire index in case where the time range is outside the range present in the archive.
author Kim Alvefur <zash@zash.se>
date Tue, 07 May 2019 17:10:07 +0200
parents 4cdd1ddae72c
children 05c74210c007
line wrap: on
line source

module:depends("cache_c2s_caps");

local st = require "util.stanza";

local function disco_handler(event)
	local stanza, origin = event.stanza, event.origin;
	local query = stanza.tags[1];
	local to = stanza.attr.to;
	local node = query.attr.node;

	local target_session = prosody.full_sessions[to];
	if target_session == nil then
		return;
	end

	local disco_info = target_session.caps_cache;
	if disco_info ~= nil and (node == nil or node == disco_info.attr.node) then
		local iq = st.reply(stanza);
		iq:add_child(st.clone(disco_info));
		local log = origin.log or module._log;
		log("debug", "Answering disco#info on the behalf of %s", to);
		module:send(iq);
		return true;
	end
end

module:hook("iq-get/full/http://jabber.org/protocol/disco#info:query", disco_handler, 1);