# HG changeset patch # User Matthew Wild # Date 1293166689 0 # Node ID bb8a064883fc01e755e1a15d065164d88750fe7b # Parent 32a2a4f522f85568271eddb755b545ef04dc7e92 s2smanager: Destroy session on immediate failure of a connection attempt (e.g. inability to create sockets) diff -r 32a2a4f522f8 -r bb8a064883fc core/s2smanager.lua --- 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