From 7073da70c650c2b17611d37a0dcff2fe8060c27f Mon Sep 17 00:00:00 2001 From: Timo Teras Date: Fri, 25 Jan 2013 02:59:54 -0700 Subject: [PATCH] Bug 3678: external acl grace period causes acl lookup failures --- src/external_acl.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/external_acl.cc b/src/external_acl.cc index b3821c5b66..53a2350108 100644 --- a/src/external_acl.cc +++ b/src/external_acl.cc @@ -830,8 +830,13 @@ aclMatchExternal(external_acl_data *acl, ACLFilledChecklist *ch) 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 << -- 2.47.2