net/xmppserver_listener.lua

changeset 1617
c6e175a0d83b
parent 1523
841d61be198f
child 1618
ba2a92230b77
child 1951
632039101699
equal deleted inserted replaced
1616:80ea744f2643 1617:c6e175a0d83b
67 return true; 67 return true;
68 end 68 end
69 69
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"] = stream_callbacks.stream_tag:gsub("%|[^|]+$", ""), xmlns = stream_callbacks.default_ns, version = "1.0", id = "" };
72 local function session_close(session, reason) 73 local function session_close(session, reason)
73 local log = session.log or log; 74 local log = session.log or log;
74 if session.conn then 75 if session.conn then
76 if session.notopen then
77 session.sends2s("<?xml version='1.0'?>");
78 session.sends2s(st.stanza("stream:stream", default_stream_attr):top_tag());
79 end
75 if reason then 80 if reason then
76 if type(reason) == "string" then -- assume stream error 81 if type(reason) == "string" then -- assume stream error
77 log("info", "Disconnecting %s[%s], <stream:error> is: %s", session.host or "(unknown host)", session.type, reason); 82 log("info", "Disconnecting %s[%s], <stream:error> is: %s", session.host or "(unknown host)", session.type, reason);
78 session.sends2s(st.stanza("stream:error"):tag(reason, {xmlns = 'urn:ietf:params:xml:ns:xmpp-streams' })); 83 session.sends2s(st.stanza("stream:error"):tag(reason, {xmlns = 'urn:ietf:params:xml:ns:xmpp-streams' }));
79 elseif type(reason) == "table" then 84 elseif type(reason) == "table" then

mercurial