Fixed: kick_old resource conflict resolution policy could fail with a backtrace

Thu, 12 Feb 2009 18:23:00 +0500

author
Waqas Hussain <waqas20@gmail.com>
date
Thu, 12 Feb 2009 18:23:00 +0500
changeset 791
a4be1d80775c
parent 790
f42ad7385640
child 792
57c793b1575f
child 805
5fbbf34ef1c4

Fixed: kick_old resource conflict resolution policy could fail with a backtrace

core/sessionmanager.lua file | annotate | diff | comparison | revisions
--- a/core/sessionmanager.lua	Thu Feb 12 18:09:17 2009 +0500
+++ b/core/sessionmanager.lua	Thu Feb 12 18:23:00 2009 +0500
@@ -126,10 +126,13 @@
 			elseif policy == "kick_new" then
 				return nil, "cancel", "conflict", "Resource already exists";
 			else -- if policy == "kick_old" then
-				hosts[session.host].sessions[session.username].sessions[resource]:close {
+				sessions[resource]:close {
 					condition = "conflict";
 					text = "Replaced by new connection";
 				};
+				if not next(sessions) then
+					hosts[session.host].sessions[session.username] = { sessions = sessions };
+				end
 			end
 			if increment and sessions[resource] then
 				local count = 1;

mercurial