Software /
code /
prosody
Comparison
plugins/mod_c2s.lua @ 4548:e6e5c76ff009
sessionmanager, mod_c2s: Move timeout logic to mod_c2s
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 23 Jan 2012 00:56:57 +0000 |
parent | 4543:db27a4c18b6a |
child | 4551:8f25f3b1c62f |
comparison
equal
deleted
inserted
replaced
4547:d9d777e97e8f | 4548:e6e5c76ff009 |
---|---|
6 -- COPYING file in the source package for more information. | 6 -- COPYING file in the source package for more information. |
7 -- | 7 -- |
8 | 8 |
9 module:set_global(); | 9 module:set_global(); |
10 | 10 |
11 local add_task = require "util.timer".add_task; | |
11 local new_xmpp_stream = require "util.xmppstream".new; | 12 local new_xmpp_stream = require "util.xmppstream".new; |
12 local nameprep = require "util.encodings".stringprep.nameprep; | 13 local nameprep = require "util.encodings".stringprep.nameprep; |
13 local portmanager = require "core.portmanager"; | 14 local portmanager = require "core.portmanager"; |
14 local sessionmanager = require "core.sessionmanager"; | 15 local sessionmanager = require "core.sessionmanager"; |
15 local st = require "util.stanza"; | 16 local st = require "util.stanza"; |
22 | 23 |
23 local xmlns_xmpp_streams = "urn:ietf:params:xml:ns:xmpp-streams"; | 24 local xmlns_xmpp_streams = "urn:ietf:params:xml:ns:xmpp-streams"; |
24 | 25 |
25 local log = module._log; | 26 local log = module._log; |
26 | 27 |
28 local c2s_timeout = module:get_option_number("c2s_timeout"); | |
27 local opt_keepalives = module:get_option_boolean("tcp_keepalives", false); | 29 local opt_keepalives = module:get_option_boolean("tcp_keepalives", false); |
28 | 30 |
29 local sessions = module:shared("sessions"); | 31 local sessions = module:shared("sessions"); |
30 | 32 |
31 local stream_callbacks = { default_ns = "jabber:client", handlestanza = core_process_stanza }; | 33 local stream_callbacks = { default_ns = "jabber:client", handlestanza = core_process_stanza }; |
184 log("debug", "Received invalid XML (%s) %d bytes: %s", tostring(err), #data, data:sub(1, 300):gsub("[\r\n]+", " "):gsub("[%z\1-\31]", "_")); | 186 log("debug", "Received invalid XML (%s) %d bytes: %s", tostring(err), #data, data:sub(1, 300):gsub("[\r\n]+", " "):gsub("[%z\1-\31]", "_")); |
185 session:close("not-well-formed"); | 187 session:close("not-well-formed"); |
186 end | 188 end |
187 end | 189 end |
188 | 190 |
191 | |
192 if c2s_timeout then | |
193 add_task(c2s_timeout, function () | |
194 if session.type == "c2s_unauthed" then | |
195 session:close("connection-timeout"); | |
196 end | |
197 end); | |
198 end | |
199 | |
189 session.dispatch_stanza = stream_callbacks.handlestanza; | 200 session.dispatch_stanza = stream_callbacks.handlestanza; |
190 end | 201 end |
191 | 202 |
192 function listener.onincoming(conn, data) | 203 function listener.onincoming(conn, data) |
193 local session = sessions[conn]; | 204 local session = sessions[conn]; |