Software /
code /
prosody
Changeset
1929:b8e6764ffefd
sessionmanager: Mark client streams as opened sooner to avoid wrapping errors in unnecessary stream tags
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Tue, 06 Oct 2009 11:15:55 +0100 |
parents | 1928:d11f07ca0b75 |
children | 1930:92b78dd346ca |
files | core/sessionmanager.lua |
diffstat | 1 files changed, 10 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- 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)