]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Replace a goto with do-while
authorAmos Jeffries <squid3@treenet.co.nz>
Sat, 29 Mar 2008 06:11:36 +0000 (18:11 +1200)
committerAmos Jeffries <squid3@treenet.co.nz>
Sat, 29 Mar 2008 06:11:36 +0000 (18:11 +1200)
src/dns_internal.cc

index 771f1e5619b90218686797411cc39dfd3d320c87..f3c7f91975f131661d51c2c08b78dc0babf19206 100644 (file)
@@ -768,29 +768,26 @@ idnsSendQuery(idns_query * q)
 
     assert(q->lru.prev == NULL);
 
-try_again:
-    ns = q->nsends % nns;
+    do {
+        ns = q->nsends % nns;
 
-    if (q->need_vc) {
-        idnsSendQueryVC(q, ns);
-        x = 0;
-    } else
-        x = comm_udp_sendto(DnsSocket,
-                            &nameservers[ns].S,
-                            sizeof(nameservers[ns].S),
-                            q->buf,
-                            q->sz);
+        if (q->need_vc) {
+            idnsSendQueryVC(q, ns);
+            x = 0;
+        } else {
+            x = comm_udp_sendto(DnsSocket, nameservers[ns].S, sizeof(nameservers[ns].S), q->buf, q->sz);
+        }
 
-    q->nsends++;
+        q->nsends++;
 
-    q->sent_t = current_time;
+        q->sent_t = current_time;
 
-    if (x < 0) {
-        debugs(50, 1, "idnsSendQuery: FD " << DnsSocket << ": sendto: " << xstrerror());
+        if (x < 0)
+            debugs(50, 1, "idnsSendQuery: FD " << DnsSocket << ": sendto: " << xstrerror());
 
-        if (q->nsends % nns != 0)
-            goto try_again;
-    } else {
+    } while( x<0 && q->nsends % nns != 0);
+
+    if(x >= 0) {
         fd_bytes(DnsSocket, x, FD_WRITE);
         commSetSelect(DnsSocket, COMM_SELECT_READ, idnsRead, NULL, 0);
     }