s2smanager: Destroy session on immediate failure of a connection attempt (e.g. inability to create sockets)

Fri, 24 Dec 2010 04:58:09 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Fri, 24 Dec 2010 04:58:09 +0000
changeset 3960
bb8a064883fc
parent 3959
32a2a4f522f8
child 3961
94d9fb07c49c

s2smanager: Destroy session on immediate failure of a connection attempt (e.g. inability to create sockets)

core/s2smanager.lua file | annotate | diff | comparison | revisions
--- 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

mercurial