aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2018-02-04 01:13:27 +0100
committerKim Alvefur <zash@zash.se>2018-02-04 01:13:27 +0100
commit5a07b39c7fb46f93b4af1288d8c4dfaba9cedbb3 (patch)
treeeb1db9e3063cf59ff25479c0b2b32fe668765f7c
parent38060a5ccf530be01713f5055377ff840dd77145 (diff)
downloadprosody-5a07b39c7fb46f93b4af1288d8c4dfaba9cedbb3.tar.gz
prosody-5a07b39c7fb46f93b4af1288d8c4dfaba9cedbb3.zip
Backed out changeset 89c42aff8510: The problem in ejabberd has reportedly been resolved and this change causes more problems than it solves (fixes #1006)
-rw-r--r--plugins/mod_dialback.lua8
-rw-r--r--plugins/mod_saslauth.lua6
2 files changed, 12 insertions, 2 deletions
diff --git a/plugins/mod_dialback.lua b/plugins/mod_dialback.lua
index dcbf9448..cc1615cf 100644
--- a/plugins/mod_dialback.lua
+++ b/plugins/mod_dialback.lua
@@ -189,6 +189,14 @@ module:hook("stanza/jabber:server:dialback:result", function(event)
end
end);
+module:hook_stanza("urn:ietf:params:xml:ns:xmpp-sasl", "failure", function (origin, stanza)
+ if origin.external_auth == "failed" then
+ module:log("debug", "SASL EXTERNAL failed, falling back to dialback");
+ initiate_dialback(origin);
+ return true;
+ end
+end, 100);
+
module:hook_stanza(xmlns_stream, "features", function (origin, stanza)
if not origin.external_auth or origin.external_auth == "failed" then
module:log("debug", "Initiating dialback...");
diff --git a/plugins/mod_saslauth.lua b/plugins/mod_saslauth.lua
index b5ec4057..55b93cda 100644
--- a/plugins/mod_saslauth.lua
+++ b/plugins/mod_saslauth.lua
@@ -110,10 +110,12 @@ module:hook_tag(xmlns_sasl, "failure", function (session, stanza)
module:log("info", "SASL EXTERNAL with %s failed: %s", session.to_host, condition);
session.external_auth = "failed"
- session:close();
- return true;
end, 500)
+module:hook_stanza(xmlns_sasl, "failure", function (session, stanza)
+ -- TODO: Dialback wasn't loaded. Do something useful.
+end, 90)
+
module:hook_tag("http://etherx.jabber.org/streams", "features", function (session, stanza)
if session.type ~= "s2sout_unauthed" or not session.secure then return; end