From e041d00417187368df7f8cf788db2084dd0a619c Mon Sep 17 00:00:00 2001 From: Amos Jeffries Date: Wed, 23 Nov 2011 23:11:55 -0700 Subject: [PATCH] Support %% in external ACL format --- src/cf.data.pre | 3 +++ src/external_acl.cc | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/src/cf.data.pre b/src/cf.data.pre index 7e1c0566cb..1d78b1f7c1 100644 --- a/src/cf.data.pre +++ b/src/cf.data.pre @@ -592,6 +592,9 @@ DOC_START list separator. ; can be any non-alphanumeric character. + %% The percent sign. Useful for helpers which need + an unchanging input format. + In addition to the above, any string specified in the referencing acl will also be included in the helper request line, after the specified formats (see the "acl external" directive) diff --git a/src/external_acl.cc b/src/external_acl.cc index 5a577f36bc..4ef9c9994f 100644 --- a/src/external_acl.cc +++ b/src/external_acl.cc @@ -190,6 +190,7 @@ struct _external_acl_format { #endif EXT_ACL_EXT_LOG, EXT_ACL_TAG, + EXT_ACL_PERCENT, EXT_ACL_END } type; external_acl_format *next; @@ -471,6 +472,8 @@ parse_externalAclHelper(external_acl ** list) format->type = _external_acl_format::EXT_ACL_EXT_LOG; else if (strcmp(token, "%TAG") == 0) format->type = _external_acl_format::EXT_ACL_TAG; + else if (strcmp(token, "%%") == 0) + format->type = _external_acl_format::EXT_ACL_PERCENT; else { debugs(0,0, "ERROR: Unknown Format token " << token); self_destruct(); @@ -1089,6 +1092,9 @@ makeExternalAclKey(ACLFilledChecklist * ch, external_acl_data * acl_data) case _external_acl_format::EXT_ACL_TAG: str = request->tag.termedBuf(); break; + case _external_acl_format::EXT_ACL_PERCENT: + str = "%"; + break; case _external_acl_format::EXT_ACL_UNKNOWN: case _external_acl_format::EXT_ACL_END: -- 2.47.2