Changeset

3960:bb8a064883fc

s2smanager: Destroy session on immediate failure of a connection attempt (e.g. inability to create sockets)
author Matthew Wild <mwild1@gmail.com>
date Fri, 24 Dec 2010 04:58:09 +0000
parents 3959:32a2a4f522f8
children 3961:94d9fb07c49c
files core/s2smanager.lua
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/core/s2smanager.lua	Fri Dec 24 04:57:17 2010 +0000
+++ b/core/s2smanager.lua	Fri Dec 24 04:58:09 2010 +0000
@@ -306,7 +306,13 @@
 		
 		if reply and reply[#reply] and reply[#reply].a then
 			log("debug", "DNS reply for %s gives us %s", connect_host, reply[#reply].a);
-			return make_connect(host_session, reply[#reply].a, connect_port);
+			local ok, err = make_connect(host_session, reply[#reply].a, connect_port);
+			if not ok then
+				if not attempt_connection(host_session, err or "closed") then
+					err = err and (": "..err) or "";
+					destroy_session(host_session, "Connection failed"..err);
+				end
+			end
 		else
 			log("debug", "DNS lookup failed to get a response for %s", connect_host);
 			if not attempt_connection(host_session, "name resolution failed") then -- Retry if we can