Changeset

1225:1e01a913baf5

sessionmanager: Fixed an old FIXME: A problem caused by an error on an authenticated but unbound session
author Waqas Hussain <waqas20@gmail.com>
date Fri, 29 May 2009 23:22:58 +0500 (2009-05-29)
parents 1224:35fa588e43a6
children 1226:3b5f9dac2045
files core/sessionmanager.lua
diffstat 1 files changed, 10 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/core/sessionmanager.lua	Fri May 29 23:14:57 2009 +0500
+++ b/core/sessionmanager.lua	Fri May 29 23:22:58 2009 +0500
@@ -65,23 +65,16 @@
 	end
 	
 	-- Remove session/resource from user's session list
-	if session.host and session.username then
-		-- FIXME: How can the below ever be nil? (but they sometimes are...)
-		if hosts[session.host] and hosts[session.host].sessions[session.username] then
-			if session.resource then
-				hosts[session.host].sessions[session.username].sessions[session.resource] = nil;
-				full_sessions[session.full_jid] = 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;
-				bare_sessions[session.host..'@'..session.username] = nil;
-			end
-		else
-			log("error", "host or session table didn't exist, please report this! Host: %s [%s] Sessions: %s [%s]", 
-					tostring(hosts[session.host]), tostring(session.host),
-					tostring(hosts[session.host].sessions[session.username] ), tostring(session.username));
+	if session.full_jid then
+		if session.resource then
+			hosts[session.host].sessions[session.username].sessions[session.resource] = nil;
+			full_sessions[session.full_jid] = 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;
+			bare_sessions[session.host..'@'..session.username] = nil;
 		end
 	end