net/xmppclient_listener.lua

changeset 3756
db7183f07114
parent 3634
0d6b57edb7bd
equal deleted inserted replaced
3755:0865524c741d 3756:db7183f07114
8 8
9 9
10 10
11 local logger = require "logger"; 11 local logger = require "logger";
12 local log = logger.init("xmppclient_listener"); 12 local log = logger.init("xmppclient_listener");
13 local lxp = require "lxp"
14 local new_xmpp_stream = require "util.xmppstream".new; 13 local new_xmpp_stream = require "util.xmppstream".new;
15 local sm_new_session = require "core.sessionmanager".new_session;
16 14
17 local connlisteners_register = require "net.connlisteners".register; 15 local connlisteners_register = require "net.connlisteners".register;
18 16
19 local t_insert = table.insert;
20 local t_concat = table.concat;
21 local t_concatall = function (t, sep) local tt = {}; for _, s in ipairs(t) do t_insert(tt, tostring(s)); end return t_concat(tt, sep); end
22 local m_random = math.random;
23 local format = string.format;
24 local sessionmanager = require "core.sessionmanager"; 17 local sessionmanager = require "core.sessionmanager";
25 local sm_new_session, sm_destroy_session = sessionmanager.new_session, sessionmanager.destroy_session; 18 local sm_new_session, sm_destroy_session = sessionmanager.new_session, sessionmanager.destroy_session;
26 local sm_streamopened = sessionmanager.streamopened; 19 local sm_streamopened = sessionmanager.streamopened;
27 local sm_streamclosed = sessionmanager.streamclosed; 20 local sm_streamclosed = sessionmanager.streamclosed;
28 local st = require "util.stanza"; 21 local st = require "util.stanza";
22 local xpcall = xpcall;
23 local tostring = tostring;
24 local type = type;
25 local traceback = debug.traceback;
29 26
30 local config = require "core.configmanager"; 27 local config = require "core.configmanager";
31 local opt_keepalives = config.get("*", "core", "tcp_keepalives"); 28 local opt_keepalives = config.get("*", "core", "tcp_keepalives");
32 29
33 local stream_callbacks = { default_ns = "jabber:client", 30 local stream_callbacks = { default_ns = "jabber:client",
60 session.log("info", "Session closed by remote with error: %s", text); 57 session.log("info", "Session closed by remote with error: %s", text);
61 session:close(nil, text); 58 session:close(nil, text);
62 end 59 end
63 end 60 end
64 61
65 local function handleerr(err) log("error", "Traceback[c2s]: %s: %s", tostring(err), debug.traceback()); end 62 local function handleerr(err) log("error", "Traceback[c2s]: %s: %s", tostring(err), traceback()); end
66 function stream_callbacks.handlestanza(session, stanza) 63 function stream_callbacks.handlestanza(session, stanza)
67 stanza = session.filter("stanzas/in", stanza); 64 stanza = session.filter("stanzas/in", stanza);
68 if stanza then 65 if stanza then
69 return xpcall(function () return core_process_stanza(session, stanza) end, handleerr); 66 return xpcall(function () return core_process_stanza(session, stanza) end, handleerr);
70 end 67 end

mercurial