X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=core%2Fsessionmanager.lua;h=7e609f22055b33f94fde119081613f99e19ae757;hb=4e9ad86f42f78e32d5a983b62277a0552c853a9c;hp=bc45d104c734ce2ad18e7491961b00905488b2fa;hpb=990e7258d9e6705ab5de7ec1d1698b454f9d7603;p=prosody.git diff --git a/core/sessionmanager.lua b/core/sessionmanager.lua index bc45d104..7e609f22 100644 --- a/core/sessionmanager.lua +++ b/core/sessionmanager.lua @@ -50,8 +50,8 @@ function new_session(conn) open_sessions = open_sessions + 1; log("debug", "open sessions now: ".. open_sessions); local w = conn.write; - session.send = function (t) w(tostring(t)); end - session.ip = conn.ip(); + session.send = function (t) w(conn, tostring(t)); end + session.ip = conn:ip(); local conn_name = "c2s"..tostring(conn):match("[a-f0-9]+$"); session.log = logger.init(conn_name); @@ -169,29 +169,30 @@ function streamopened(session, attr) session.version = tonumber(attr.version) or 0; session.streamid = uuid_generate(); (session.log or session)("debug", "Client sent opening to %s", session.host); - - send(""); - send(format("", 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(""); + send(format("", session.streamid, session.host)); + + (session.log or log)("debug", "Sent reply 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 to client"); - session.notopen = nil; + end function streamclosed(session)