s2smanager: Send reply stream header only after checking we serve this host (sorry...
authorMatthew Wild <mwild1@gmail.com>
Thu, 17 Dec 2009 21:36:31 +0000 (21:36 +0000)
committerMatthew Wild <mwild1@gmail.com>
Thu, 17 Dec 2009 21:36:31 +0000 (21:36 +0000)
core/s2smanager.lua

index 381e5e531bae2a185d5248d997707ea7a34f0770..4891b4994d514dea5b3895256b64e7029bf7e185 100644 (file)
@@ -369,17 +369,17 @@ function streamopened(session, attr)
        
                session.streamid = uuid_gen();
                (session.log or log)("debug", "incoming s2s received <stream:stream>");
-               send("<?xml version='1.0'?>");
-               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.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("<?xml version='1.0'?>");
+               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