equal
deleted
inserted
replaced
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; |