MUC: Fixed: Unavilable presence was not being broadcasted for banned users in some...
[prosody.git] / plugins / mod_dialback.lua
index 947bd2e1f6f36ebf9fccdd95e92bb5c28ea2a167..189aeb363c5f30a95ade745334dcac28500038ac 100644 (file)
@@ -1,6 +1,6 @@
--- Prosody IM v0.4
--- Copyright (C) 2008-2009 Matthew Wild
--- Copyright (C) 2008-2009 Waqas Hussain
+-- Prosody IM
+-- Copyright (C) 2008-2010 Matthew Wild
+-- Copyright (C) 2008-2010 Waqas Hussain
 -- 
 -- This project is MIT/X11 licensed. Please see the
 -- COPYING file in the source package for more information.
@@ -10,6 +10,7 @@
 local hosts = _G.hosts;
 local send_s2s = require "core.s2smanager".send_to_host;
 local s2s_make_authenticated = require "core.s2smanager".make_authenticated;
+local s2s_initiate_dialback = require "core.s2smanager".initiate_dialback;
 local s2s_verify_dialback = require "core.s2smanager".verify_dialback;
 local s2s_destroy_session = require "core.s2smanager".destroy_session;
 
@@ -17,6 +18,7 @@ local log = module._log;
 
 local st = require "util.stanza";
 
+local xmlns_stream = "http://etherx.jabber.org/streams";
 local xmlns_dialback = "jabber:server:dialback";
 
 local dialback_requests = setmetatable({}, { __mode = 'v' });
@@ -113,3 +115,13 @@ module:add_handler({ "s2sout_unauthed", "s2sout" }, "result", xmlns_dialback,
                        s2s_destroy_session(origin)
                end
        end);
+
+module:hook_stanza(xmlns_stream, "features", function (origin, stanza)
+               s2s_initiate_dialback(origin);
+               return true;
+       end, 100);
+
+-- Offer dialback to incoming hosts
+module:hook("s2s-stream-features", function (data)
+               data.features:tag("dialback", { xmlns='urn:xmpp:features:dialback' }):tag("optional"):up():up();
+       end);