Software /
code /
prosody
Comparison
core/s2smanager.lua @ 4027:81d0ed5787f6
s2smanager: Handle DNS lookup error in response handler
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 24 Dec 2010 04:57:17 +0000 |
parent | 4026:21edd42768b5 |
child | 4028:f596e1a5e88a |
comparison
equal
deleted
inserted
replaced
4026:21edd42768b5 | 4027:81d0ed5787f6 |
---|---|
285 end | 285 end |
286 | 286 |
287 function try_connect(host_session, connect_host, connect_port) | 287 function try_connect(host_session, connect_host, connect_port) |
288 host_session.connecting = true; | 288 host_session.connecting = true; |
289 local handle; | 289 local handle; |
290 handle = adns.lookup(function (reply) | 290 handle = adns.lookup(function (reply, err) |
291 handle = nil; | 291 handle = nil; |
292 host_session.connecting = nil; | 292 host_session.connecting = nil; |
293 | 293 |
294 -- COMPAT: This is a compromise for all you CNAME-(ab)users :) | 294 -- COMPAT: This is a compromise for all you CNAME-(ab)users :) |
295 if not (reply and reply[#reply] and reply[#reply].a) then | 295 if not (reply and reply[#reply] and reply[#reply].a) then |
308 return make_connect(host_session, reply[#reply].a, connect_port); | 308 return make_connect(host_session, reply[#reply].a, connect_port); |
309 else | 309 else |
310 log("debug", "DNS lookup failed to get a response for %s", connect_host); | 310 log("debug", "DNS lookup failed to get a response for %s", connect_host); |
311 if not attempt_connection(host_session, "name resolution failed") then -- Retry if we can | 311 if not attempt_connection(host_session, "name resolution failed") then -- Retry if we can |
312 log("debug", "No other records to try for %s - destroying", host_session.to_host); | 312 log("debug", "No other records to try for %s - destroying", host_session.to_host); |
313 destroy_session(host_session, "DNS resolution failed"); -- End of the line, we can't | 313 err = err and (": "..err) or ""; |
314 destroy_session(host_session, "DNS resolution failed"..err); -- End of the line, we can't | |
314 end | 315 end |
315 end | 316 end |
316 end, connect_host, "A", "IN"); | 317 end, connect_host, "A", "IN"); |
317 | 318 |
318 return true; | 319 return true; |