68 return true; |
68 return true; |
69 end |
69 end |
70 |
70 |
71 local stream_xmlns_attr = {xmlns='urn:ietf:params:xml:ns:xmpp-streams'}; |
71 local stream_xmlns_attr = {xmlns='urn:ietf:params:xml:ns:xmpp-streams'}; |
72 local default_stream_attr = { ["xmlns:stream"] = "http://etherx.jabber.org/streams", xmlns = stream_callbacks.default_ns, version = "1.0", id = "" }; |
72 local default_stream_attr = { ["xmlns:stream"] = "http://etherx.jabber.org/streams", xmlns = stream_callbacks.default_ns, version = "1.0", id = "" }; |
73 local function session_close(session, reason) |
73 local function session_close(session, reason, remote_reason) |
74 local log = session.log or log; |
74 local log = session.log or log; |
75 if session.conn then |
75 if session.conn then |
76 if session.notopen then |
76 if session.notopen then |
77 session.sends2s("<?xml version='1.0'?>"); |
77 session.sends2s("<?xml version='1.0'?>"); |
78 session.sends2s(st.stanza("stream:stream", default_stream_attr):top_tag()); |
78 session.sends2s(st.stanza("stream:stream", default_stream_attr):top_tag()); |
101 session.sends2s("</stream:stream>"); |
101 session.sends2s("</stream:stream>"); |
102 if session.notopen or not session.conn:close() then |
102 if session.notopen or not session.conn:close() then |
103 session.conn:close(true); -- Force FIXME: timer? |
103 session.conn:close(true); -- Force FIXME: timer? |
104 end |
104 end |
105 session.conn:close(); |
105 session.conn:close(); |
106 xmppserver.ondisconnect(session.conn, (reason and (reason.text or reason.condition)) or reason or "stream closed"); |
106 xmppserver.ondisconnect(session.conn, remote_reason or (reason and (reason.text or reason.condition)) or reason or "stream closed"); |
107 end |
107 end |
108 end |
108 end |
109 |
109 |
110 |
110 |
111 -- End of session methods -- |
111 -- End of session methods -- |