sessionmanager: Mark client streams as opened sooner to avoid wrapping errors in unnecessary stream tags

Tue, 06 Oct 2009 11:15:55 +0100

author
Paul Aurich <paul@darkrain42.org>
date
Tue, 06 Oct 2009 11:15:55 +0100
changeset 1929
b8e6764ffefd
parent 1928
d11f07ca0b75
child 1930
92b78dd346ca

sessionmanager: Mark client streams as opened sooner to avoid wrapping errors in unnecessary stream tags

core/sessionmanager.lua file | annotate | diff | comparison | revisions
--- a/core/sessionmanager.lua	Tue Oct 06 11:02:33 2009 +0100
+++ b/core/sessionmanager.lua	Tue Oct 06 11:15:55 2009 +0100
@@ -169,29 +169,30 @@
 	session.version = tonumber(attr.version) or 0;
 	session.streamid = uuid_generate();
 	(session.log or session)("debug", "Client sent opening <stream:stream> to %s", session.host);
-	
-	send("<?xml version='1.0'?>");
-	send(format("<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='%s' from='%s' version='1.0' xml:lang='en'>", session.streamid, session.host));
 
 	if not hosts[session.host] then
 		-- We don't serve this host...
 		session:close{ condition = "host-unknown", text = "This server does not serve "..tostring(session.host)};
 		return;
 	end
-	
+
+	send("<?xml version='1.0'?>");
+	send(format("<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='%s' from='%s' version='1.0' xml:lang='en'>", session.streamid, session.host));
+
+	(session.log or log)("debug", "Sent reply <stream:stream> to client");
+	session.notopen = nil;
+
 	-- If session.secure is *false* (not nil) then it means we /were/ encrypting
 	-- since we now have a new stream header, session is secured
 	if session.secure == false then
 		session.secure = true;
 	end
-						
+
 	local features = st.stanza("stream:features");
 	fire_event("stream-features", session, features);
-	
+
 	send(features);
-	
-	(session.log or log)("debug", "Sent reply <stream:stream> to client");
-	session.notopen = nil;
+
 end
 
 function streamclosed(session)

mercurial