core/s2smanager.lua
changeset 4028 f596e1a5e88a
parent 4027 81d0ed5787f6
child 4078 05a58497a903
child 4106 e19fc274e182
--- a/core/s2smanager.lua	Fri Dec 24 04:57:17 2010 +0000
+++ b/core/s2smanager.lua	Fri Dec 24 04:58:09 2010 +0000
@@ -305,7 +305,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