Mercurial > prosody-modules
comparison mod_s2s_idle_timeout/mod_s2s_idle_timeout.lua @ 932:4e235e565693
mod_bidi, mod_dwd, mod_s2s_idle_timeout: Update for recent 0.9 changes (612467e263af)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 22 Mar 2013 14:24:05 +0000 |
parents | 6c454d7208ae |
children |
comparison
equal
deleted
inserted
replaced
931:e20e94d75fe3 | 932:4e235e565693 |
---|---|
5 | 5 |
6 local s2s_sessions = setmetatable({}, { __mode = "kv" }); | 6 local s2s_sessions = setmetatable({}, { __mode = "kv" }); |
7 | 7 |
8 local idle_timeout = module:get_option("s2s_idle_timeout") or 300; | 8 local idle_timeout = module:get_option("s2s_idle_timeout") or 300; |
9 local check_interval = math.ceil(idle_timeout * 0.75); | 9 local check_interval = math.ceil(idle_timeout * 0.75); |
10 local _make_authenticated = s2smanager.make_authenticated; | 10 |
11 function s2smanager.make_authenticated(session, host) | 11 local function install_checks(session) |
12 if not session.last_received_time then | 12 if not session.last_received_time then |
13 session.last_received_time = now(); | 13 session.last_received_time = now(); |
14 if session.direction == "incoming" then | 14 if session.direction == "incoming" then |
15 local _data = session.data; | 15 local _data = session.data; |
16 function session.data(conn, data) | 16 function session.data(conn, data) |
24 return _sends2s(data); | 24 return _sends2s(data); |
25 end | 25 end |
26 end | 26 end |
27 s2s_sessions[session] = true; | 27 s2s_sessions[session] = true; |
28 end | 28 end |
29 return _make_authenticated(session, host); | |
30 end | 29 end |
30 | |
31 module:hook("s2s-authenticated", function (event) | |
32 install_checks(event.session); | |
33 end); | |
31 | 34 |
32 function check_idle_sessions(time) | 35 function check_idle_sessions(time) |
33 time = time or now(); | 36 time = time or now(); |
34 for session in pairs(s2s_sessions) do | 37 for session in pairs(s2s_sessions) do |
35 local last_received_time = session.last_received_time; | 38 local last_received_time = session.last_received_time; |