From cb834a922e20c466b2b2de302189e09125351285 Mon Sep 17 00:00:00 2001 From: Amos Jeffries Date: Fri, 2 Dec 2011 01:28:17 -0700 Subject: [PATCH] Support %% in external ACL format --- src/cf.data.pre | 3 +++ src/external_acl.cc | 7 +++++++ 2 files changed, 10 insertions(+) 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: -- 2.47.2