net/xmppclient_listener.lua

changeset 1618
ba2a92230b77
parent 1605
f6bd13fe1cb1
parent 1617
c6e175a0d83b
child 1684
645e18990211
equal deleted inserted replaced
1611:e20f90743863 1618:ba2a92230b77
68 return true; 68 return true;
69 end 69 end
70 70
71 71
72 local stream_xmlns_attr = {xmlns='urn:ietf:params:xml:ns:xmpp-streams'}; 72 local stream_xmlns_attr = {xmlns='urn:ietf:params:xml:ns:xmpp-streams'};
73 local default_stream_attr = { ["xmlns:stream"] = stream_callbacks.stream_tag:gsub("%|[^|]+$", ""), xmlns = stream_callbacks.default_ns, version = "1.0", id = "" };
73 local function session_close(session, reason) 74 local function session_close(session, reason)
74 local log = session.log or log; 75 local log = session.log or log;
75 if session.conn then 76 if session.conn then
77 if session.notopen then
78 session.send("<?xml version='1.0'?>");
79 session.send(st.stanza("stream:stream", default_stream_attr):top_tag());
80 end
76 if reason then 81 if reason then
77 if type(reason) == "string" then -- assume stream error 82 if type(reason) == "string" then -- assume stream error
78 log("info", "Disconnecting client, <stream:error> is: %s", reason); 83 log("info", "Disconnecting client, <stream:error> is: %s", reason);
79 session.send(st.stanza("stream:error"):tag(reason, {xmlns = 'urn:ietf:params:xml:ns:xmpp-streams' })); 84 session.send(st.stanza("stream:error"):tag(reason, {xmlns = 'urn:ietf:params:xml:ns:xmpp-streams' }));
80 elseif type(reason) == "table" then 85 elseif type(reason) == "table" then

mercurial