From: hno <> Date: Thu, 21 Oct 2004 04:31:23 +0000 (+0000) Subject: Bug #901: ident ACLs parsed incorrectly if specified multiple times X-Git-Tag: SQUID_3_0_PRE4~1013 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1b0e74e55c1ebac40df36b5b025b6ba685a0eb13;p=thirdparty%2Fsquid.git Bug #901: ident ACLs parsed incorrectly if specified multiple times --- diff --git a/src/ACLIdent.cc b/src/ACLIdent.cc index 835594428c..8f00cf1ded 100644 --- a/src/ACLIdent.cc +++ b/src/ACLIdent.cc @@ -69,8 +69,11 @@ ACLIdent::typeString() const void ACLIdent::parse() { - debug(28, 3) ("aclParseUserList: current is null. Creating\n"); - data = new ACLUserData; + if (!data) { + debug(28, 3) ("aclParseUserList: current is null. Creating\n"); + data = new ACLUserData; + } + data->parse(); } @@ -79,7 +82,10 @@ ACLIdent::match(ACLChecklist *checklist) { if (checklist->rfc931[0]) { return data->match(checklist->rfc931); + } else if (checklist->conn().getRaw() != NULL && checklist->conn()->rfc931[0]) { + return data->match(checklist->conn()->rfc931); } else { + debug(28, 3) ("ACLIdent::match() - switching to ident lookup state\n"); checklist->changeState(IdentLookup::Instance()); return 0; }