]> git.ipfire.org Git - thirdparty/squid.git/blob - src/acl/HttpHeaderData.h
b93189df5b68855b31c6a1d12b0e59edfe2f5485
[thirdparty/squid.git] / src / acl / HttpHeaderData.h
1 /*
2 * Copyright (C) 1996-2025 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9 #ifndef SQUID_SRC_ACL_HTTPHEADERDATA_H
10 #define SQUID_SRC_ACL_HTTPHEADERDATA_H
11
12 #include "acl/Data.h"
13 #include "HttpHeader.h"
14 #include "sbuf/SBuf.h"
15 #include "SquidString.h"
16
17 class ACLHTTPHeaderData: public ACLData<const HttpHeader &>
18 {
19 MEMPROXY_CLASS(ACLHTTPHeaderData);
20
21 public:
22 ACLHTTPHeaderData();
23 ~ACLHTTPHeaderData() override;
24 bool match(const HttpHeader &) override;
25 SBufList dump() const override;
26 void parse() override;
27 bool empty() const override;
28
29 private:
30 /* ACLData API */
31 const Acl::Options &lineOptions() override;
32
33 Http::HdrType hdrId; /**< set if header is known */
34 SBuf hdrName; /**< always set */
35 ACLData<char const *> * regex_rule;
36 };
37
38 #endif /* SQUID_SRC_ACL_HTTPHEADERDATA_H */
39