]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
pullup:
authorAndreas Gustafsson <source@isc.org>
Wed, 12 Jul 2000 00:21:56 +0000 (00:21 +0000)
committerAndreas Gustafsson <source@isc.org>
Wed, 12 Jul 2000 00:21:56 +0000 (00:21 +0000)
Don't try and reset timers which aren't being used.

bin/dig/dig.c
bin/dig/dighost.c

index 11e7f80a4eea5c8494806408d851ad7953cfe6d3..8f6234ba6159709c7ec98117ae314057c0b8b6d6 100644 (file)
@@ -15,7 +15,7 @@
  * SOFTWARE.
  */
 
-/* $Id: dig.c,v 1.51.2.2 2000/07/10 19:11:34 bwelling Exp $ */
+/* $Id: dig.c,v 1.51.2.3 2000/07/12 00:21:56 gson Exp $ */
 
 #include <config.h>
 #include <stdlib.h>
@@ -644,6 +644,13 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
                        timeout = atoi(&rv[0][6]);
                        if (timeout <= 0)
                                timeout = 1;
+                       debug ("timeout set to %d", timeout);
+               } else if (strncmp(rv[0], "+timeout=", 9) == 0) {
+                       /* Global option always */
+                       timeout = atoi(&rv[0][9]);
+                       if (timeout <= 0)
+                               timeout = 1;
+                       debug ("timeout set to %d", timeout);
                } else if (strncmp(rv[0], "+tries=", 7) == 0) {
                        if (have_host) {
                                lookup->retries = atoi(&rv[0][7]);
index 0ddd152b6d3e78881f8fe8470bcbe6e593fe470e..de17b3f14119e95543827f1788c09a3c97c30012 100644 (file)
@@ -15,7 +15,7 @@
  * SOFTWARE.
  */
 
-/* $Id: dighost.c,v 1.58.2.3 2000/07/10 19:11:36 bwelling Exp $ */
+/* $Id: dighost.c,v 1.58.2.4 2000/07/12 00:21:55 gson Exp $ */
 
 /*
  * Notice to programmers:  Do not use this code as an example of how to
@@ -1193,6 +1193,7 @@ send_udp(dig_lookup_t *lookup) {
                                local_timeout = UDP_TIMEOUT;
                } else
                        local_timeout = timeout;
+               debug ("have local timeout of %d", local_timeout);
                isc_interval_set(&lookup->interval, local_timeout, 0);
                result = isc_timer_create(timermgr, isc_timertype_once, NULL,
                                          &lookup->interval, global_task,
@@ -1763,19 +1764,21 @@ recv_done(isc_task_t *task, isc_event_t *event) {
                         * the timeout to much longer, so brief network
                         * outages won't cause the XFR to abort
                         */
-                       if (timeout != INT_MAX) {
+                       if ((timeout != INT_MAX) &&
+                           (query->lookup->timer != NULL)) {
                                if (timeout == 0) {
                                        if (query->lookup->tcp_mode)
                                                local_timeout = TCP_TIMEOUT;
                                        else
                                                local_timeout = UDP_TIMEOUT;
                                } else {
-                                       if (((long)timeout * 4) < 
-                                           (long)INT_MAX)
+                                       if (timeout < (INT_MAX / 4))
                                                local_timeout = timeout * 4;
                                        else
                                                local_timeout = INT_MAX;
                                }
+                               debug ("have local timeout of %d",
+                                      local_timeout);          
                                isc_interval_set(&query->lookup->interval,
                                                 local_timeout, 0);
                                result = isc_timer_reset(query->lookup->timer,
@@ -1783,7 +1786,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
                                                      NULL,
                                                      &query->lookup->interval,
                                                      ISC_FALSE);
-                               check_result(result, "isc_timer_create");
+                               check_result(result, "isc_timer_reset");
                        }
                }
                if (query->lookup->xfr_q == query) {
@@ -1953,6 +1956,7 @@ do_lookup_tcp(dig_lookup_t *lookup) {
                                local_timeout = UDP_TIMEOUT;
                } else
                        local_timeout = timeout;
+               debug ("have local timeout of %d", local_timeout);
                isc_interval_set(&lookup->interval, local_timeout, 0);
                result = isc_timer_create(timermgr, isc_timertype_once, NULL,
                                          &lookup->interval, global_task,