]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
- Fixed some dnsserver-related reconfigure bugs. Need to
authorwessels <>
Sat, 3 Jan 1998 05:03:40 +0000 (05:03 +0000)
committerwessels <>
Sat, 3 Jan 1998 05:03:40 +0000 (05:03 +0000)
          use cbdataLock, etc in fqdncache.c.  Also don't want to
          use ipcacheQueueDrain() and fqdncacheQueueDrain().

src/dns.cc
src/fqdncache.cc
src/ipcache.cc

index d497416043d26296d9fa97e177f971beafc2b51f..5fe294e1f26cccabae11a7a038436c1b8a66b1cf 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: dns.cc,v 1.47 1998/01/02 18:15:32 wessels Exp $
+ * $Id: dns.cc,v 1.48 1998/01/02 22:03:41 wessels Exp $
  *
  * DEBUG: section 34    Dnsserver interface
  * AUTHOR: Harvest Derived
@@ -349,9 +349,15 @@ dnsShutdownServers(void)
 
     debug(34, 3) ("dnsShutdownServers:\n");
 
+#if OLD_CODE
+    /*
+     * We used to do this when we waited for all active connections
+     * to close before reconfiguring.
+     */
     k = ipcacheQueueDrain();
     if (fqdncacheQueueDrain() || k)
        return;
+#endif
     for (k = 0; k < NDnsServersAlloc; k++) {
        dns = *(dns_child_table + k);
        if (!EBIT_TEST(dns->flags, HELPER_ALIVE)) {
index 9865005033e1ecfcc72625c9fc85cdee4ced142d..8c586e9344d8f6bedee3c912894aa6575fd10311 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: fqdncache.cc,v 1.75 1997/12/30 02:47:41 wessels Exp $
+ * $Id: fqdncache.cc,v 1.76 1998/01/02 22:03:41 wessels Exp $
  *
  * DEBUG: section 35    FQDN Cache
  * AUTHOR: Harvest Derived
@@ -487,16 +487,21 @@ fqdncache_dnsHandleRead(int fd, void *data)
            fqdncache_call_pending(f);
        }
        fqdncacheUnlockEntry(f);        /* unlock from FQDN_DISPATCHED */
+    } else {
+        debug(14, 5) ("fqdncache_dnsHandleRead: Incomplete reply\n");
+        commSetSelect(fd,
+            COMM_SELECT_READ,
+            fqdncache_dnsHandleRead,
+            dnsData,
+            0);
     }
     if (dnsData->offset == 0) {
        dnsData->data = NULL;
        EBIT_CLR(dnsData->flags, HELPER_BUSY);
+        if (EBIT_TEST(dnsData->flags, HELPER_SHUTDOWN))
+            dnsShutdownServer(dnsData);
+        cbdataUnlock(dnsData);
     }
-    /* reschedule */
-    commSetSelect(dnsData->inpipe,
-       COMM_SELECT_READ,
-       fqdncache_dnsHandleRead,
-       dnsData, 0);
     fqdncacheNudgeQueue();
 }
 
@@ -605,6 +610,7 @@ fqdncache_dnsDispatch(dnsserver_t * dns, fqdncache_entry * f)
        NULL,                   /* Handler */
        NULL,                   /* Handler-data */
        xfree);
+    cbdataLock(dns);
     commSetSelect(dns->outpipe,
        COMM_SELECT_READ,
        fqdncache_dnsHandleRead,
@@ -787,6 +793,7 @@ fqdnFromAddr(struct in_addr addr)
     return buf;
 }
 
+#if OLD_CODE
 int
 fqdncacheQueueDrain(void)
 {
@@ -798,6 +805,7 @@ fqdncacheQueueDrain(void)
        fqdncache_dnsDispatch(dnsData, i);
     return 1;
 }
+#endif
 
 static void
 fqdncacheLockEntry(fqdncache_entry * f)
index 6b4b6b2eb435a6b784615de9d5c8cbd1100b7809..d09b655161ad140069c1c86cdc0bae94567a414b 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: ipcache.cc,v 1.151 1997/12/30 02:47:42 wessels Exp $
+ * $Id: ipcache.cc,v 1.152 1998/01/02 22:03:40 wessels Exp $
  *
  * DEBUG: section 14    IP Cache
  * AUTHOR: Harvest Derived
@@ -873,6 +873,7 @@ ipcacheCheckNumeric(const char *name)
     return &static_addrs;
 }
 
+#if OLD_CODE
 int
 ipcacheQueueDrain(void)
 {
@@ -881,6 +882,7 @@ ipcacheQueueDrain(void)
     ipcacheNudgeQueue();
     return 1;
 }
+#endif
 
 static void
 ipcacheLockEntry(ipcache_entry * i)