In ipcache.c:
static int
ipcacheExpiredEntry(ipcache_entry * i)
{
if (i->status == IP_PENDING)
return 0;
if (i->status == IP_DISPATCHED)
return 0;
if (i->locks != 0)
return 0;
if (i->expires >= squid_curtime) /* used to be > instead of >= */
return 0;
if (i->status == IP_CACHED)
if (squid_curtime - i->lastref < 60)
if (i->addrs.count > 0)
return 0;
return 1;
}
The >= is required because ipcacheRemoveBadAddr() sets i->expires =
squid_curtime, but the ipcache_entry could be used again in the same
second. If it is, it may have i->count == 0, which causes fatals etc.
Michael.
Received on Tue Jul 29 2003 - 13:15:44 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:11:28 MST