# HG changeset patch # User Matthew Wild # Date 1261085896 0 # Node ID 7926f513816b3c494cc61a030aab9e279f2d386c # Parent 1c7839fbbe9de43c3468a521022ab7ad4a8cc3f7# Parent bc1ae371ad544ec61f07a7ef6fd54400d0fd8538 Merge with backout branch diff -r bc1ae371ad54 -r 7926f513816b core/s2smanager.lua --- a/core/s2smanager.lua Thu Dec 17 21:18:02 2009 +0000 +++ b/core/s2smanager.lua Thu Dec 17 21:38:16 2009 +0000 @@ -363,17 +363,17 @@ session.streamid = uuid_gen(); (session.log or log)("debug", "incoming s2s received "); - send(""); - send(stanza("stream:stream", { xmlns='jabber:server', ["xmlns:db"]='jabber:server:dialback', - ["xmlns:stream"]='http://etherx.jabber.org/streams', id=session.streamid, from=session.to_host, version=(session.version > 0 and "1.0" or nil) }):top_tag()); - session.notopen = nil; if session.to_host and not hosts[session.to_host] then -- Attempting to connect to a host we don't serve session:close({ condition = "host-unknown"; text = "This host does not serve "..session.to_host }); return; end + send(""); + send(stanza("stream:stream", { xmlns='jabber:server', ["xmlns:db"]='jabber:server:dialback', + ["xmlns:stream"]='http://etherx.jabber.org/streams', id=session.streamid, from=session.to_host, version=(session.version > 0 and "1.0" or nil) }):top_tag()); if session.version >= 1.0 then local features = st.stanza("stream:features"); + if session.to_host then hosts[session.to_host].events.fire_event("s2s-stream-features", { session = session, features = features }); else @@ -390,7 +390,7 @@ -- Send unauthed buffer -- (stanzas which are fine to send before dialback) - -- Note that this is *not* the stanza queue (which + -- Note that this is *not* the stanza queue (which -- we can only send if auth succeeds) :) local send_buffer = session.send_buffer; if send_buffer and #send_buffer > 0 then @@ -412,6 +412,7 @@ end end end + session.notopen = nil; end function streamclosed(session) @@ -478,6 +479,7 @@ end session.sendq = nil; end + session.srv_hosts = nil; end end