X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=plugins%2Fmod_dialback.lua;h=189aeb363c5f30a95ade745334dcac28500038ac;hb=3ea4e9da6700b0032e4002f6804040f501581da2;hp=947bd2e1f6f36ebf9fccdd95e92bb5c28ea2a167;hpb=3b7410dd445088e4741070305f70a0ffb72d2413;p=prosody.git diff --git a/plugins/mod_dialback.lua b/plugins/mod_dialback.lua index 947bd2e1..189aeb36 100644 --- a/plugins/mod_dialback.lua +++ b/plugins/mod_dialback.lua @@ -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);