Steinar H. Gunderson modified c-ares to now also do to DNS retries even when
authorDaniel Stenberg <daniel@haxx.se>
Sat, 22 Sep 2007 21:04:16 +0000 (21:04 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 22 Sep 2007 21:04:16 +0000 (21:04 +0000)
TCP is used since there are several edge cases where it still makes sense.

ares/CHANGES
ares/ares_process.c

index 160489c..4f28e3b 100644 (file)
@@ -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
index e8b9ef6..66007f0 100644 (file)
@@ -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);
 }