mod_s2s: prevent attempting to reconnect when the stream is gracefully closed and fix TB by checking session.conn is set (racy racy?)
authorMarco Cirillo <maranda@lightwitch.org>
Fri, 24 Feb 2012 15:36:36 +0000
changeset 4572 aba47e6dff43
parent 4571 32d532b95dc7
child 4573 09255a10fdfa
child 4574 4c24bb949e73
mod_s2s: prevent attempting to reconnect when the stream is gracefully closed and fix TB by checking session.conn is set (racy racy?)
plugins/s2s/mod_s2s.lua
--- a/plugins/s2s/mod_s2s.lua	Fri Feb 24 15:35:04 2012 +0000
+++ b/plugins/s2s/mod_s2s.lua	Fri Feb 24 15:36:36 2012 +0000
@@ -247,7 +247,7 @@
 end
 
 function stream_callbacks.streamdisconnected(session, err)
-	if err and err ~= "closed" then
+	if err and err ~= "stream closed" then
 		(session.log or log)("debug", "s2s connection attempt failed: %s", err);
 		if s2sout.attempt_connection(session, err) then
 			(session.log or log)("debug", "...so we're going to try another target");
@@ -255,7 +255,7 @@
 		end
 	end
 	(session.log or log)("info", "s2s disconnected: %s->%s (%s)", tostring(session.from_host), tostring(session.to_host), tostring(err or "closed"));
-	sessions[session.conn]  = nil;
+	if session.con then sessions[session.conn] = nil; else (session.log or log)("debug", "stale session's connection already closed"); end
 	s2s_destroy_session(session, err);
 end