Updated on what is in bugzilla.

Amos

# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [EMAIL PROTECTED]
# target_branch: http://www.squid-cache.org/bzr/squid3/trunk/
# testament_sha1: 344a58d90eab4410e5109082181e9fbe43cf0189
# timestamp: 2008-09-28 22:06:19 +1200
# source_branch: http://www.squid-cache.org/bzr/squid3/trunk/
# base_revision_id: [EMAIL PROTECTED]
#   r45lxgfhq0scvbp0
# 
# Begin patch
=== modified file 'src/dns_internal.cc'
--- src/dns_internal.cc 2008-07-12 15:40:56 +0000
+++ src/dns_internal.cc 2008-09-28 10:02:57 +0000
@@ -105,8 +105,8 @@
     int need_vc;
 
     struct timeval start_t;
-
     struct timeval sent_t;
+    struct timeval queue_t;
     dlink_node lru;
     IDNSCB *callback;
     void *callback_data;
@@ -823,7 +823,7 @@
 
         q->nsends++;
 
-        q->sent_t = current_time;
+        q->queue_t = q->sent_t = current_time;
 
         if (x < 0)
             debugs(50, 1, "idnsSendQuery: FD " << DnsSocket << ": sendto: " << 
xstrerror());
@@ -836,6 +836,7 @@
     }
 
     nameservers[ns].nqueries++;
+    q->queue_t = current_time;
     dlinkAdd(q, &q->lru, &lru_list);
     idnsTickleQueue();
 }
@@ -1197,20 +1198,29 @@
     idns_query *q;
     event_queued = 0;
 
+    if (0 == nns)
+        /* name servers went away; reconfiguring or shutting down */
+        return;
+
     for (n = lru_list.tail; n; n = p) {
-        if (0 == nns)
-            /* name servers went away; reconfiguring or shutting down */
-            break;
-
-        q = (idns_query *)n->data;
-
-        if (tvSubDsec(q->sent_t, current_time) < 
Config.Timeout.idns_retransmit * (1 << (q->nsends - 1) % nns))
-            break;
+
+        p = n->prev;
+        q = n->data;
+
+        /* Anything to process in the queue? */
+        if (tvSubDsec(q->queue_t, current_time) < 
Config.Timeout.idns_retransmit )
+           break;
+
+        /* Query timer expired? */
+        if (tvSubDsec(q->sent_t, current_time) < 
Config.Timeout.idns_retransmit * 1 << ((q->nsends - 1) / nns)) {
+            dlinkDelete(&q->lru, &lru_list);
+            q->queue_t = current_time;
+            dlinkAdd(q, &q->lru, &lru_list);
+            continue;
+        }
 
         debugs(78, 3, "idnsCheckQueue: ID 0x" << std::hex << std::setfill('0') 
<< std::setw(4) << q->id << "timeout" );
 
-        p = n->prev;
-
         dlinkDelete(&q->lru, &lru_list);
 
         if (tvSubDsec(q->start_t, current_time) < Config.Timeout.idns_query) {

# Begin bundle
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

Reply via email to