From: Amos Jeffries Date: Fri, 2 Dec 2011 08:28:17 +0000 (-0700) Subject: Support %% in external ACL format X-Git-Tag: SQUID_3_1_17~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb834a922e20c466b2b2de302189e09125351285;p=thirdparty%2Fsquid.git Support %% in external ACL format --- diff --git a/src/cf.data.pre b/src/cf.data.pre index a09251da4e..a591a862a7 100644 --- a/src/cf.data.pre +++ b/src/cf.data.pre @@ -490,6 +490,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 8a6869cd43..c91339f8a4 100644 --- a/src/external_acl.cc +++ b/src/external_acl.cc @@ -169,6 +169,7 @@ struct _external_acl_format { EXT_ACL_USER_CERTCHAIN_RAW, #endif EXT_ACL_EXT_USER, + EXT_ACL_PERCENT, EXT_ACL_END } type; external_acl_format *next; @@ -420,6 +421,8 @@ parse_externalAclHelper(external_acl ** list) #endif else if (strcmp(token, "%EXT_USER") == 0) format->type = _external_acl_format::EXT_ACL_EXT_USER; + else if (strcmp(token, "%%") == 0) + format->type = _external_acl_format::EXT_ACL_PERCENT; else { self_destruct(); } @@ -992,6 +995,10 @@ makeExternalAclKey(ACLFilledChecklist * ch, external_acl_data * acl_data) str = request->extacl_user.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: