Comparison

core/sessionmanager.lua @ 126:63863534b1f1

Final fix for marking user offline when all resources are gone :)
author Matthew Wild <mwild1@gmail.com>
date Thu, 23 Oct 2008 18:05:06 +0100
parent 125:6b6b8f4ab7e3
child 145:fbb3a4ff9cf1
child 149:40e443eacbbd
comparison
equal deleted inserted replaced
125:6b6b8f4ab7e3 126:63863534b1f1
1 1
2 local tonumber, tostring = tonumber, tostring; 2 local tonumber, tostring = tonumber, tostring;
3 local ipairs, pairs, print= ipairs, pairs, print; 3 local ipairs, pairs, print, next= ipairs, pairs, print, next;
4 local collectgarbage = collectgarbage; 4 local collectgarbage = collectgarbage;
5 local m_random = import("math", "random"); 5 local m_random = import("math", "random");
6 local format = import("string", "format"); 6 local format = import("string", "format");
7 7
8 local hosts = hosts; 8 local hosts = hosts;
37 session.log("info", "Destroying session"); 37 session.log("info", "Destroying session");
38 if session.username then 38 if session.username then
39 if session.resource then 39 if session.resource then
40 hosts[session.host].sessions[session.username].sessions[session.resource] = nil; 40 hosts[session.host].sessions[session.username].sessions[session.resource] = nil;
41 end 41 end
42 if not next(hosts[session.host].sessions[session.username], nil) then 42
43 if not next(hosts[session.host].sessions[session.username].sessions) then
44 log("debug", "All resources of %s are now offline", session.username);
43 hosts[session.host].sessions[session.username] = nil; 45 hosts[session.host].sessions[session.username] = nil;
44 end 46 end
45 end 47 end
46 session.conn = nil; 48 session.conn = nil;
47 session.disconnect = nil; 49 session.disconnect = nil;