net/xmppcomponent_listener.lua

changeset 1617
c6e175a0d83b
parent 1523
841d61be198f
child 1635
33d087466767
equal deleted inserted replaced
1616:80ea744f2643 1617:c6e175a0d83b
85 return core_process_stanza(session, stanza); 85 return core_process_stanza(session, stanza);
86 end 86 end
87 87
88 --- Closing a component connection 88 --- Closing a component connection
89 local stream_xmlns_attr = {xmlns='urn:ietf:params:xml:ns:xmpp-streams'}; 89 local stream_xmlns_attr = {xmlns='urn:ietf:params:xml:ns:xmpp-streams'};
90 local default_stream_attr = { ["xmlns:stream"] = stream_callbacks.stream_tag:gsub("%|[^|]+$", ""), xmlns = stream_callbacks.default_ns, version = "1.0", id = "" };
90 local function session_close(session, reason) 91 local function session_close(session, reason)
91 local log = session.log or log; 92 local log = session.log or log;
92 if session.conn then 93 if session.conn then
94 if session.notopen then
95 session.send("<?xml version='1.0'?>");
96 session.send(st.stanza("stream:stream", default_stream_attr):top_tag());
97 end
93 if reason then 98 if reason then
94 if type(reason) == "string" then -- assume stream error 99 if type(reason) == "string" then -- assume stream error
95 log("info", "Disconnecting component, <stream:error> is: %s", reason); 100 log("info", "Disconnecting component, <stream:error> is: %s", reason);
96 session.send(st.stanza("stream:error"):tag(reason, {xmlns = 'urn:ietf:params:xml:ns:xmpp-streams' })); 101 session.send(st.stanza("stream:error"):tag(reason, {xmlns = 'urn:ietf:params:xml:ns:xmpp-streams' }));
97 elseif type(reason) == "table" then 102 elseif type(reason) == "table" then

mercurial