diff options
author | Kim Alvefur <zash@zash.se> | 2014-04-23 00:23:46 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2014-04-23 00:23:46 +0200 |
commit | b6f6c679f0ec7f0aee83e9dce2f18db4f4c166b1 (patch) | |
tree | eb9fb622a0d716a1b827a9d7530a073ac57cb5ab /plugins/mod_s2s/mod_s2s.lua | |
parent | 95eb3d5a0d01ac9e6670c9f5dc44752f1e1b7388 (diff) | |
parent | a4b456c8577e5188da086ce16738ed019351ee1f (diff) | |
download | prosody-b6f6c679f0ec7f0aee83e9dce2f18db4f4c166b1.tar.gz prosody-b6f6c679f0ec7f0aee83e9dce2f18db4f4c166b1.zip |
Merge 0.10->trunk
Diffstat (limited to 'plugins/mod_s2s/mod_s2s.lua')
-rw-r--r-- | plugins/mod_s2s/mod_s2s.lua | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/plugins/mod_s2s/mod_s2s.lua b/plugins/mod_s2s/mod_s2s.lua index 73d95970..263f24c0 100644 --- a/plugins/mod_s2s/mod_s2s.lua +++ b/plugins/mod_s2s/mod_s2s.lua @@ -150,6 +150,13 @@ function module.add_host(module) module:hook("route/remote", route_to_new_session, -10); module:hook("s2s-authenticated", make_authenticated, -1); module:hook("s2s-read-timeout", keepalive, -1); + module:hook_stanza("http://etherx.jabber.org/streams", "features", function (session, stanza) + if session.type == "s2sout" then + -- Stream is authenticated and we are seem to be done with feature negotiation, + -- so the stream is ready for stanzas. RFC 6120 Section 4.3 + mark_connected(session); + end + end, -1); end -- Stream is authorised, and ready for normal stanzas @@ -219,7 +226,10 @@ function make_authenticated(event) end session.log("debug", "connection %s->%s is now authenticated for %s", session.from_host, session.to_host, host); - mark_connected(session); + if (session.type == "s2sout" and session.external_auth ~= "succeeded") or session.type == "s2sin" then + -- Stream either used dialback for authentication or is an incoming stream. + mark_connected(session); + end return true; end |