aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2012-01-23 00:56:57 +0000
committerMatthew Wild <mwild1@gmail.com>2012-01-23 00:56:57 +0000
commit308cf1c32f9145ed83160014a090f01a36f02720 (patch)
tree23dd118b9e745bfa49eb722ce5324c7ed2ab6a00 /plugins
parent3e28afcd6c5a926b2d46b9e09d21a39dae882019 (diff)
downloadprosody-308cf1c32f9145ed83160014a090f01a36f02720.tar.gz
prosody-308cf1c32f9145ed83160014a090f01a36f02720.zip
sessionmanager, mod_c2s: Move timeout logic to mod_c2s
Diffstat (limited to 'plugins')
-rw-r--r--plugins/mod_c2s.lua11
1 files changed, 11 insertions, 0 deletions
diff --git a/plugins/mod_c2s.lua b/plugins/mod_c2s.lua
index 2fbed1c9..4d7318a5 100644
--- a/plugins/mod_c2s.lua
+++ b/plugins/mod_c2s.lua
@@ -8,6 +8,7 @@
module:set_global();
+local add_task = require "util.timer".add_task;
local new_xmpp_stream = require "util.xmppstream".new;
local nameprep = require "util.encodings".stringprep.nameprep;
local portmanager = require "core.portmanager";
@@ -24,6 +25,7 @@ local xmlns_xmpp_streams = "urn:ietf:params:xml:ns:xmpp-streams";
local log = module._log;
+local c2s_timeout = module:get_option_number("c2s_timeout");
local opt_keepalives = module:get_option_boolean("tcp_keepalives", false);
local sessions = module:shared("sessions");
@@ -186,6 +188,15 @@ function listener.onconnect(conn)
end
end
+
+ if c2s_timeout then
+ add_task(c2s_timeout, function ()
+ if session.type == "c2s_unauthed" then
+ session:close("connection-timeout");
+ end
+ end);
+ end
+
session.dispatch_stanza = stream_callbacks.handlestanza;
end