X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=core%2Fdiscomanager.lua;h=f9c91e126e42426b159ffd18e920bbd400499101;hb=9f1b05a1e4131fa87a4f41ee09a57a5c31fffbfe;hp=5f7b3c78b957c5b18303563859c76f754933fef3;hpb=32df8170ef56829eb385c8b76992067f07487f7d;p=prosody.git diff --git a/core/discomanager.lua b/core/discomanager.lua index 5f7b3c78..f9c91e12 100644 --- a/core/discomanager.lua +++ b/core/discomanager.lua @@ -1,3 +1,12 @@ +-- Prosody IM v0.4 +-- Copyright (C) 2008-2009 Matthew Wild +-- Copyright (C) 2008-2009 Waqas Hussain +-- +-- This project is MIT/X11 licensed. Please see the +-- COPYING file in the source package for more information. +-- + + local helper = require "util.discohelper".new(); local hosts = hosts; @@ -5,11 +14,12 @@ local jid_split = require "util.jid".split; local jid_bare = require "util.jid".bare; local usermanager_user_exists = require "core.usermanager".user_exists; local rostermanager_is_contact_subscribed = require "core.rostermanager".is_contact_subscribed; +local print = print; do helper:addDiscoInfoHandler("*host", function(reply, to, from, node) if hosts[to] then - reply:tag("identity", {category="server", type="im", name="lxmppd"}):up(); + reply:tag("identity", {category="server", type="im", name="Prosody"}):up(); return true; end end); @@ -20,6 +30,11 @@ do return true; end end); + helper:addDiscoItemsHandler("*host", function(reply, to, from, node) + if hosts[to] and hosts[to].type == "local" then + return true; + end + end); end module "discomanager" @@ -36,4 +51,16 @@ function addDiscoInfoHandler(jid, func) return helper:addDiscoInfoHandler(jid, func); end +function set(plugin, var, origin) + -- TODO handle origin and host based on plugin. + local handler = function(reply, to, from, node) -- service discovery + if #node == 0 then + reply:tag("feature", {var = var}):up(); + return true; + end + end + addDiscoInfoHandler("*node", handler); + addDiscoInfoHandler("*host", handler); +end + return _M;