core.loggingmanager: Reinstating global log() function
[prosody.git] / core / discomanager.lua
index 5f7b3c78b957c5b18303563859c76f754933fef3..f9c91e126e42426b159ffd18e920bbd400499101 100644 (file)
@@ -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.
+--
+
+
 \r
 local helper = require "util.discohelper".new();\r
 local hosts = hosts;\r
@@ -5,11 +14,12 @@ local jid_split = require "util.jid".split;
 local jid_bare = require "util.jid".bare;\r
 local usermanager_user_exists = require "core.usermanager".user_exists;\r
 local rostermanager_is_contact_subscribed = require "core.rostermanager".is_contact_subscribed;\r
+local print = print;\r
 \r
 do\r
        helper:addDiscoInfoHandler("*host", function(reply, to, from, node)\r
                if hosts[to] then\r
-                       reply:tag("identity", {category="server", type="im", name="lxmppd"}):up();\r
+                       reply:tag("identity", {category="server", type="im", name="Prosody"}):up();\r
                        return true;\r
                end\r
        end);\r
@@ -20,6 +30,11 @@ do
                        return true;\r
                end\r
        end);\r
+       helper:addDiscoItemsHandler("*host", function(reply, to, from, node)
+               if hosts[to] and hosts[to].type == "local" then
+                       return true;
+               end
+       end);
 end\r
 \r
 module "discomanager"\r
@@ -36,4 +51,16 @@ function addDiscoInfoHandler(jid, func)
        return helper:addDiscoInfoHandler(jid, func);\r
 end\r
 \r
+function set(plugin, var, origin)\r
+       -- TODO handle origin and host based on plugin.\r
+       local handler = function(reply, to, from, node) -- service discovery\r
+               if #node == 0 then\r
+                       reply:tag("feature", {var = var}):up();\r
+                       return true;\r
+               end\r
+       end\r
+       addDiscoInfoHandler("*node", handler);\r
+       addDiscoInfoHandler("*host", handler);\r
+end\r
+\r
 return _M;\r