From: wessels <> Date: Wed, 2 Dec 1998 12:03:28 +0000 (+0000) Subject: We have duplicated peerRefreshDNS events from frequent reconfigures. X-Git-Tag: SQUID_3_0_PRE1~2491 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=46ca5fc6b1a388079804c232af877391a5f36a46;p=thirdparty%2Fsquid.git We have duplicated peerRefreshDNS events from frequent reconfigures. We fix it by checking for an existing peerRefreshDNS pending event and not queueing another. --- diff --git a/src/event.cc b/src/event.cc index a8c2899f07..d49a97b372 100644 --- a/src/event.cc +++ b/src/event.cc @@ -1,6 +1,6 @@ /* - * $Id: event.cc,v 1.23 1998/10/21 06:54:21 wessels Exp $ + * $Id: event.cc,v 1.24 1998/12/02 05:03:28 wessels Exp $ * * DEBUG: section 41 Event Processing * AUTHOR: Henrik Nordstrom @@ -186,3 +186,14 @@ eventFreeMemory(void) } tasks = NULL; } + +int +eventFind(EVH * func, void *arg) +{ + struct ev_entry *event; + for (event = tasks; event != NULL; event = event->next) { + if (event->func == func && event->arg == arg) + return 1; + } + return 0; +} diff --git a/src/neighbors.cc b/src/neighbors.cc index 7c9ba8530c..32cc821b41 100644 --- a/src/neighbors.cc +++ b/src/neighbors.cc @@ -1,6 +1,6 @@ /* - * $Id: neighbors.cc,v 1.262 1998/11/23 23:25:06 wessels Exp $ + * $Id: neighbors.cc,v 1.263 1998/12/02 05:03:30 wessels Exp $ * * DEBUG: section 15 Neighbor Routines * AUTHOR: Harvest Derived @@ -942,6 +942,8 @@ static void peerRefreshDNS(void *data) { peer *p = NULL; + if (eventFind(peerRefreshDNS, NULL)) + return; if (!data && 0 == stat5minClientRequests()) { /* no recent client traffic, wait a bit */ eventAddIsh("peerRefreshDNS", peerRefreshDNS, NULL, 180.0, 1); diff --git a/src/protos.h b/src/protos.h index a9a1c85a26..dc70dc5958 100644 --- a/src/protos.h +++ b/src/protos.h @@ -1,6 +1,6 @@ /* - * $Id: protos.h,v 1.292 1998/11/25 09:00:24 wessels Exp $ + * $Id: protos.h,v 1.293 1998/12/02 05:03:29 wessels Exp $ * * * SQUID Internet Object Cache http://squid.nlanr.net/Squid/ @@ -215,6 +215,7 @@ extern time_t eventNextTime(void); extern void eventDelete(EVH * func, void *arg); extern void eventInit(void); extern void eventFreeMemory(void); +extern int eventFind(EVH *, void *); extern void fd_close(int fd); extern void fd_open(int fd, unsigned int type, const char *);