if (acl->def->theHelper->stats.queue_size <= (int)acl->def->theHelper->childs.n_active) {
debugs(82, 2, "aclMatchExternal: \"" << key << "\": queueing a call.");
ch->changeState(ExternalACLLookup::Instance());
- debugs(82, 2, "aclMatchExternal: \"" << key << "\": return -1.");
- return -1; // to get here we have to have an expired cache entry. MUST not use.
+ if (!entry) {
+ debugs(82, 2, "aclMatchExternal: \"" << key << "\": return -1.");
+ return -1; // to get here we have to have an expired cache entry. MUST not use.
+ }
+ // else we have a usable entry in grace period
+ debugs(82, 2, "aclMatchExternal: \"" << key << "\": grace period active, will use results from entry.");
+ // Fall thru to processing below.
} else {
if (!entry) {
debugs(82, 1, "aclMatchExternal: '" << acl->def->name <<