Change default maximum inactivity period to 60s from 30s
[prosody.git] / core / discomanager.lua
index 5f7b3c78b957c5b18303563859c76f754933fef3..fe63f972cc0453eec3193a1970d41737a31f83ce 100644 (file)
@@ -1,3 +1,23 @@
+-- Prosody IM v0.2
+-- Copyright (C) 2008 Matthew Wild
+-- Copyright (C) 2008 Waqas Hussain
+-- 
+-- This program is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU General Public License
+-- as published by the Free Software Foundation; either version 2
+-- of the License, or (at your option) any later version.
+-- 
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+-- 
+-- You should have received a copy of the GNU General Public License
+-- along with this program; if not, write to the Free Software
+-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+--
+
+
 \r
 local helper = require "util.discohelper".new();\r
 local hosts = hosts;\r
@@ -5,11 +25,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 +41,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 +62,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