entry = ch->extacl_entry;
if (entry) {
- if (cbdataReferenceValid(entry) && entry->def == acl->def &&
- strcmp((char *)entry->key, key) == 0) {
- /* Ours, use it.. */
+ if (cbdataReferenceValid(entry) && entry->def == acl->def) {
+ /* Ours, use it.. if the key matches */
+ key = makeExternalAclKey(ch, acl);
+ if (strcmp(key, (char*)entry->key) != 0) {
+ debugs(82, 9, HERE << "entry key='" << (char *)entry->key << "', our key='" << key << "' dont match. Discarded.");
+ // too bad. need a new lookup.
+ cbdataReferenceDone(ch->extacl_entry);
+ entry = NULL;
+ }
} else {
/* Not valid, or not ours.. get rid of it */
cbdataReferenceDone(ch->extacl_entry);