(*fmt)->data.header.header = (*fmt)->data.string;
} else
#endif
- {
+ if (strncmp(token,"%<{", 3) == 0) {
+ SBuf tmp("%<h");
+ tmp.append(token+2);
+ debugs(82, DBG_PARSE_NOTE(DBG_IMPORTANT), "WARNING: external_acl_type format %<{...} is deprecated. Use " << tmp);
+ const size_t parsedLen = (*fmt)->parse(tmp.c_str(), "e);
+ assert(parsedLen == tmp.length());
+ assert((*fmt)->type == Format::LFT_REPLY_HEADER ||
+ (*fmt)->type == Format::LFT_REPLY_HEADER_ELEM);
+
+ } else if (strncmp(token,"%>{", 3) == 0) {
+ SBuf tmp("%>ha");
+ tmp.append(token+2);
+ debugs(82, DBG_PARSE_NOTE(DBG_IMPORTANT), "WARNING: external_acl_type format %>{...} is deprecated. Use " << tmp);
+ const size_t parsedLen = (*fmt)->parse(tmp.c_str(), "e);
+ assert(parsedLen == tmp.length());
+ assert((*fmt)->type == Format::LFT_ADAPTED_REQUEST_HEADER ||
+ (*fmt)->type == Format::LFT_ADAPTED_REQUEST_HEADER_ELEM);
+
+ } else {
// we can use the Format::Token::parse() method since it
// only pulls off one token. Since we already checked
// for '%' prefix above this is guaranteed to be a token.
TokenTableEntry("DATA", LFT_EXT_ACL_DATA),
TokenTableEntry("DST", LFT_CLIENT_REQ_URLDOMAIN),
TokenTableEntry("EXT_LOG", LFT_EXT_LOG),
+ TokenTableEntry("EXT_TAG", LFT_TAG),
TokenTableEntry("EXT_USER", LFT_USER_EXTERNAL),
TokenTableEntry("IDENT", LFT_USER_IDENT),
TokenTableEntry("LOGIN", LFT_USER_LOGIN),
--- /dev/null
+## Copyright (C) 1996-2017 The Squid Software Foundation and contributors
+##
+## Squid software is distributed under GPLv2+ license and includes
+## contributions from numerous individuals and organizations.
+## Please see the COPYING and CONTRIBUTORS files for details.
+##
+
+# Check Backward Compatibility with Squid-3 formats
+external_acl_type foo \
+ %LOGIN \
+ %un \
+ %EXT_USER \
+ %EXT_LOG \
+ %EXT_TAG \
+ %IDENT \
+ %SRC \
+ %SRCPORT \
+ %URI \
+ %DST \
+ %PROTO \
+ %PORT \
+ %PATH \
+ %METHOD \
+ %MYADDR \
+ %MYPORT \
+ %PATH \
+ %>{Header} \
+ %>{Hdr:member} \
+ %>{Hdr:;member} \
+ %>{Hdr:Xmember} \
+ %<{Header} \
+ %<{Hdr:member} \
+ %<{Hdr:;member} \
+ %<{Hdr:Xmember} \
+ %ACL \
+ %DATA \
+ %% /bin/true
+
+# TODO: enable when these are no longer requiring OpenSSL
+# %USER_CERT
+# %USER_CERTCHAIN
+# %USER_CERT_xx
+# %USER_CA_CERT_xx
+# %ssl::>sni
+# %ssl::<cert_subject
+# %ssl::<cert_issuer