X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=plugins%2Fmod_dialback.lua;h=469044cd34f347cf5666c6f9156b9ba0037d9c50;hb=7aa58ae9d7679f28752638a5ab7831c246b54d55;hp=5c956103a50f7f7da6a614fef2b910f61af28e5b;hpb=ba596f33614438d0f42713ca39423bdc88eb224d;p=prosody.git diff --git a/plugins/mod_dialback.lua b/plugins/mod_dialback.lua index 5c956103..469044cd 100644 --- a/plugins/mod_dialback.lua +++ b/plugins/mod_dialback.lua @@ -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);