view mod_admin_probe/mod_admin_probe.lua @ 3088:6eaa1aa4f8ae

mod_cloud_notify: more cleanup
author tmolitor <>
date Sat, 02 Jun 2018 03:09:42 +0200
parents f78661861e98
line wrap: on
line source

-- Prosody IM
-- Copyright (C) 2014 Florian Zeitz
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.

local presence = module:depends("presence");
local send_presence_of_available_resources = presence.send_presence_of_available_resources;

local hosts = prosody.hosts;
local core_post_stanza = prosody.core_post_stanza;

local st = require "util.stanza";
local is_admin = require "core.usermanager".is_admin;
local jid_split = require "util.jid".split;

module:hook("presence/bare", function(data)
	local origin, stanza = data.origin, data.stanza;
	local to, from, type =, stanza.attr.from, stanza.attr.type;
	local node, host = jid_split(to);

	if type ~= "probe" then return; end
	if not is_admin(from, then return; end

	if 0 == send_presence_of_available_resources(node, host, from, origin) then
		core_post_stanza(hosts[host], st.presence({from=to, to=from, type="unavailable"}), true);
	return true;
end, 10);