aboutsummaryrefslogtreecommitdiffstats
path: root/core/sessionmanager.lua
diff options
context:
space:
mode:
Diffstat (limited to 'core/sessionmanager.lua')
-rw-r--r--core/sessionmanager.lua13
1 files changed, 7 insertions, 6 deletions
diff --git a/core/sessionmanager.lua b/core/sessionmanager.lua
index d140ebe0..2b7659d2 100644
--- a/core/sessionmanager.lua
+++ b/core/sessionmanager.lua
@@ -11,7 +11,7 @@ local sessions = sessions;
local modulemanager = require "core.modulemanager";
local log = require "util.logger".init("sessionmanager");
local error = error;
-local uuid_generate = require "util.uuid".uuid_generate;
+local uuid_generate = require "util.uuid".generate;
local rm_load_roster = require "core.rostermanager".load_roster;
local newproxy = newproxy;
@@ -35,14 +35,15 @@ end
function destroy_session(session)
session.log("info", "Destroying session");
- if session.username then
+ if session.host and session.username then
if session.resource then
hosts[session.host].sessions[session.username].sessions[session.resource] = nil;
end
-
- if not next(hosts[session.host].sessions[session.username].sessions) then
- log("debug", "All resources of %s are now offline", session.username);
- hosts[session.host].sessions[session.username] = nil;
+ if hosts[session.host] and hosts[session.host].sessions[session.username] then
+ if not next(hosts[session.host].sessions[session.username].sessions) then
+ log("debug", "All resources of %s are now offline", session.username);
+ hosts[session.host].sessions[session.username] = nil;
+ end
end
end
session.conn = nil;