diff options
author | Daniel Stenberg <daniel@haxx.se> | 2007-09-22 21:04:16 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2007-09-22 21:04:16 +0000 |
commit | 0f89a2e639f002df48bd43726818410439e24dd4 (patch) | |
tree | 41f3af6996115df913cbc9b386831fe523802925 | |
parent | 05b26e7566b9788fcdecda3c49e0b0ca1f7d25ec (diff) |
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.
-rw-r--r-- | ares/CHANGES | 3 | ||||
-rw-r--r-- | 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); } |