From 0f89a2e639f002df48bd43726818410439e24dd4 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 22 Sep 2007 21:04:16 +0000 Subject: Steinar H. Gunderson modified c-ares to now also do to DNS retries even when TCP is used since there are several edge cases where it still makes sense. --- ares/CHANGES | 3 +++ ares/ares_process.c | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ares/CHANGES b/ares/CHANGES index 160489c64..4f28e3b4c 100644 --- a/ares/CHANGES +++ b/ares/CHANGES @@ -2,6 +2,9 @@ * September 22 2007 (Daniel Stenberg) +- Steinar H. Gunderson modified c-ares to now also do to DNS retries even when + TCP is used since there are several edge cases where it still makes sense. + - Brad House provided a fix for ares_save_options(): Apparently I overlooked something with the ares_save_options() where it diff --git a/ares/ares_process.c b/ares/ares_process.c index e8b9ef6fa..66007f0fb 100644 --- a/ares/ares_process.c +++ b/ares/ares_process.c @@ -504,9 +504,12 @@ static struct query *next_server(ares_channel channel, struct query *query, time } query->server = 0; - /* Only one try if we're using TCP. */ - if (query->using_tcp) - break; + /* You might think that with TCP we only need one try. However, + * even when using TCP, servers can time-out our connection just + * as we're sending a request, or close our connection because + * they die, or never send us a reply because they get wedged or + * tickle a bug that drops our request. + */ } return end_query(channel, query, query->error_status, NULL, 0); } -- cgit v1.2.3