]>
Commit | Line | Data |
---|---|---|
2d46f579 AR |
1 | #include "squid.h" |
2 | ||
3 | /** This file exists to provide satic registration code to executables | |
4 | that need ACLs. We cannot place this code in acl/lib*.la because it | |
5 | does not get linked in, because nobody is using these classes by name. | |
6 | */ | |
7 | ||
8 | #include "acl/Acl.h" | |
4d65855c | 9 | #ifdef USE_ARP_ACL |
2d46f579 AR |
10 | #include "acl/Arp.h" |
11 | #endif | |
12 | #include "acl/Asn.h" | |
13 | #include "acl/Browser.h" | |
14 | #include "acl/Checklist.h" | |
15 | #include "acl/Data.h" | |
16 | #include "acl/DestinationAsn.h" | |
17 | #include "acl/DestinationDomain.h" | |
18 | #include "acl/DestinationIp.h" | |
19 | #include "acl/DomainData.h" | |
20 | #include "acl/ExtUser.h" | |
21 | #include "acl/FilledChecklist.h" | |
22 | #include "acl/Gadgets.h" | |
bbaf2685 AJ |
23 | #include "acl/HierCodeData.h" |
24 | #include "acl/HierCode.h" | |
2d46f579 AR |
25 | #include "acl/HttpHeaderData.h" |
26 | #include "acl/HttpRepHeader.h" | |
27 | #include "acl/HttpReqHeader.h" | |
28 | #include "acl/HttpStatus.h" | |
2d46f579 AR |
29 | #include "acl/IntRange.h" |
30 | #include "acl/Ip.h" | |
31 | #include "acl/MaxConnection.h" | |
32 | #include "acl/MethodData.h" | |
33 | #include "acl/Method.h" | |
34 | #include "acl/MyIp.h" | |
35 | #include "acl/MyPort.h" | |
36 | #include "acl/MyPortName.h" | |
37 | #include "acl/PeerName.h" | |
38 | #include "acl/ProtocolData.h" | |
39 | #include "acl/Protocol.h" | |
40 | #include "acl/Referer.h" | |
41 | #include "acl/RegexData.h" | |
42 | #include "acl/ReplyHeaderStrategy.h" | |
43 | #include "acl/ReplyMimeType.h" | |
44 | #include "acl/RequestHeaderStrategy.h" | |
45 | #include "acl/RequestMimeType.h" | |
46 | #include "acl/SourceAsn.h" | |
47 | #include "acl/SourceDomain.h" | |
48 | #include "acl/SourceIp.h" | |
4d65855c | 49 | #ifdef USE_SSL |
2d46f579 AR |
50 | #include "acl/SslErrorData.h" |
51 | #include "acl/SslError.h" | |
52 | #include "acl/CertificateData.h" | |
53 | #include "acl/Certificate.h" | |
54 | #endif | |
55 | #include "acl/Strategised.h" | |
56 | #include "acl/Strategy.h" | |
57 | #include "acl/StringData.h" | |
bb5e7a79 | 58 | #include "acl/Tag.h" |
2d46f579 AR |
59 | #include "acl/TimeData.h" |
60 | #include "acl/Time.h" | |
61 | #include "acl/Url.h" | |
62 | #include "acl/UrlPath.h" | |
63 | #include "acl/UrlPort.h" | |
64 | #include "acl/UserData.h" | |
abca32cf CT |
65 | #include "auth/AclProxyAuth.h" |
66 | #include "auth/AclMaxUserIp.h" | |
4daaf3cb AJ |
67 | #if USE_IDENT |
68 | #include "ident/AclIdent.h" | |
69 | #endif | |
abca32cf | 70 | |
2d46f579 AR |
71 | |
72 | ACL::Prototype ACLBrowser::RegistryProtoype(&ACLBrowser::RegistryEntry_, "browser"); | |
73 | ACLStrategised<char const *> ACLBrowser::RegistryEntry_(new ACLRegexData, ACLRequestHeaderStrategy<HDR_USER_AGENT>::Instance(), "browser"); | |
74 | ACL::Prototype ACLDestinationDomain::LiteralRegistryProtoype(&ACLDestinationDomain::LiteralRegistryEntry_, "dstdomain"); | |
75 | ACLStrategised<char const *> ACLDestinationDomain::LiteralRegistryEntry_(new ACLDomainData, ACLDestinationDomainStrategy::Instance(), "dstdomain"); | |
76 | ACL::Prototype ACLDestinationDomain::RegexRegistryProtoype(&ACLDestinationDomain::RegexRegistryEntry_, "dstdom_regex"); | |
77 | ACLStrategised<char const *> ACLDestinationDomain::RegexRegistryEntry_(new ACLRegexData,ACLDestinationDomainStrategy::Instance() ,"dstdom_regex"); | |
78 | ACL::Prototype ACLDestinationIP::RegistryProtoype(&ACLDestinationIP::RegistryEntry_, "dst"); | |
79 | ACLDestinationIP ACLDestinationIP::RegistryEntry_; | |
80 | ACL::Prototype ACLExtUser::UserRegistryProtoype(&ACLExtUser::UserRegistryEntry_, "ext_user"); | |
81 | ACLExtUser ACLExtUser::UserRegistryEntry_(new ACLUserData, "ext_user"); | |
82 | ACL::Prototype ACLExtUser::RegexRegistryProtoype(&ACLExtUser::RegexRegistryEntry_, "ext_user_regex" ); | |
83 | ACLExtUser ACLExtUser::RegexRegistryEntry_(new ACLRegexData, "ext_user_regex"); | |
bbaf2685 AJ |
84 | ACL::Prototype ACLHierCode::RegistryProtoype(&ACLHierCode::RegistryEntry_, "hier_code"); |
85 | ACLStrategised<hier_code> ACLHierCode::RegistryEntry_(new ACLHierCodeData, ACLHierCodeStrategy::Instance(), "hier_code"); | |
2d46f579 AR |
86 | ACL::Prototype ACLHTTPRepHeader::RegistryProtoype(&ACLHTTPRepHeader::RegistryEntry_, "rep_header"); |
87 | ACLStrategised<HttpHeader*> ACLHTTPRepHeader::RegistryEntry_(new ACLHTTPHeaderData, ACLHTTPRepHeaderStrategy::Instance(), "rep_header"); | |
88 | ACL::Prototype ACLHTTPReqHeader::RegistryProtoype(&ACLHTTPReqHeader::RegistryEntry_, "req_header"); | |
89 | ACLStrategised<HttpHeader*> ACLHTTPReqHeader::RegistryEntry_(new ACLHTTPHeaderData, ACLHTTPReqHeaderStrategy::Instance(), "req_header"); | |
90 | ACL::Prototype ACLHTTPStatus::RegistryProtoype(&ACLHTTPStatus::RegistryEntry_, "http_status"); | |
91 | ACLHTTPStatus ACLHTTPStatus::RegistryEntry_("http_status"); | |
92 | ACL::Prototype ACLMaxConnection::RegistryProtoype(&ACLMaxConnection::RegistryEntry_, "maxconn"); | |
93 | ACLMaxConnection ACLMaxConnection::RegistryEntry_("maxconn"); | |
94 | ACL::Prototype ACLMethod::RegistryProtoype(&ACLMethod::RegistryEntry_, "method"); | |
95 | ACLStrategised<HttpRequestMethod> ACLMethod::RegistryEntry_(new ACLMethodData, ACLMethodStrategy::Instance(), "method"); | |
96 | ACLMyIP ACLMyIP::RegistryEntry_; | |
97 | ACLMyIP const &ACLMyIP::RegistryEntry() {return RegistryEntry_;} | |
98 | ACL::Prototype ACLMyPort::RegistryProtoype(&ACLMyPort::RegistryEntry_, "myport"); | |
99 | ACLStrategised<int> ACLMyPort::RegistryEntry_(new ACLIntRange, ACLMyPortStrategy::Instance(), "myport"); | |
100 | ACL::Prototype ACLMyPortName::RegistryProtoype(&ACLMyPortName::RegistryEntry_, "myportname"); | |
101 | ACLStrategised<const char *> ACLMyPortName::RegistryEntry_(new ACLStringData, ACLMyPortNameStrategy::Instance(), "myportname"); | |
102 | ACL::Prototype ACLPeerName::RegistryProtoype(&ACLPeerName::RegistryEntry_, "peername"); | |
103 | ACLStrategised<const char *> ACLPeerName::RegistryEntry_(new ACLStringData, ACLPeerNameStrategy::Instance(), "peername"); | |
104 | ACL::Prototype ACLProtocol::RegistryProtoype(&ACLProtocol::RegistryEntry_, "proto"); | |
105 | ACLStrategised<protocol_t> ACLProtocol::RegistryEntry_(new ACLProtocolData, ACLProtocolStrategy::Instance(), "proto"); | |
106 | ACL::Prototype ACLReferer::RegistryProtoype(&ACLReferer::RegistryEntry_, "referer_regex"); | |
107 | ACLStrategised<char const *> ACLReferer::RegistryEntry_(new ACLRegexData, ACLRequestHeaderStrategy<HDR_REFERER>::Instance(), "referer_regex"); | |
108 | ACL::Prototype ACLReplyMIMEType::RegistryProtoype(&ACLReplyMIMEType::RegistryEntry_, "rep_mime_type"); | |
109 | ACLStrategised<char const *> ACLReplyMIMEType::RegistryEntry_(new ACLRegexData, ACLReplyHeaderStrategy<HDR_CONTENT_TYPE>::Instance(), "rep_mime_type"); | |
110 | ACL::Prototype ACLRequestMIMEType::RegistryProtoype(&ACLRequestMIMEType::RegistryEntry_, "req_mime_type"); | |
111 | ACLStrategised<char const *> ACLRequestMIMEType::RegistryEntry_(new ACLRegexData, ACLRequestHeaderStrategy<HDR_CONTENT_TYPE>::Instance(), "req_mime_type"); | |
112 | ACL::Prototype ACLSourceDomain::LiteralRegistryProtoype(&ACLSourceDomain::LiteralRegistryEntry_, "srcdomain"); | |
113 | ACLStrategised<char const *> ACLSourceDomain::LiteralRegistryEntry_(new ACLDomainData, ACLSourceDomainStrategy::Instance(), "srcdomain"); | |
114 | ACL::Prototype ACLSourceDomain::RegexRegistryProtoype(&ACLSourceDomain::RegexRegistryEntry_, "srcdom_regex"); | |
115 | ACLStrategised<char const *> ACLSourceDomain::RegexRegistryEntry_(new ACLRegexData,ACLSourceDomainStrategy::Instance() ,"srcdom_regex"); | |
116 | ACL::Prototype ACLSourceIP::RegistryProtoype(&ACLSourceIP::RegistryEntry_, "src"); | |
117 | ACLSourceIP ACLSourceIP::RegistryEntry_; | |
118 | ACL::Prototype ACLTime::RegistryProtoype(&ACLTime::RegistryEntry_, "time"); | |
119 | ACLStrategised<time_t> ACLTime::RegistryEntry_(new ACLTimeData, ACLTimeStrategy::Instance(), "time"); | |
120 | ACL::Prototype ACLUrl::RegistryProtoype(&ACLUrl::RegistryEntry_, "url_regex"); | |
121 | ACLStrategised<char const *> ACLUrl::RegistryEntry_(new ACLRegexData, ACLUrlStrategy::Instance(), "url_regex"); | |
122 | ACL::Prototype ACLUrlPath::LegacyRegistryProtoype(&ACLUrlPath::RegistryEntry_, "pattern"); | |
123 | ACL::Prototype ACLUrlPath::RegistryProtoype(&ACLUrlPath::RegistryEntry_, "urlpath_regex"); | |
124 | ACLStrategised<char const *> ACLUrlPath::RegistryEntry_(new ACLRegexData, ACLUrlPathStrategy::Instance(), "urlpath_regex"); | |
125 | ACL::Prototype ACLUrlPort::RegistryProtoype(&ACLUrlPort::RegistryEntry_, "port"); | |
126 | ACLStrategised<int> ACLUrlPort::RegistryEntry_(new ACLIntRange, ACLUrlPortStrategy::Instance(), "port"); | |
127 | ||
4d65855c | 128 | #ifdef USE_SSL |
af6a12ee AJ |
129 | ACL::Prototype ACLSslError::RegistryProtoype(&ACLSslError::RegistryEntry_, "ssl_error"); |
130 | ACLStrategised<int> ACLSslError::RegistryEntry_(new ACLSslErrorData, ACLSslErrorStrategy::Instance(), "ssl_error"); | |
131 | ACL::Prototype ACLCertificate::UserRegistryProtoype(&ACLCertificate::UserRegistryEntry_, "user_cert"); | |
132 | ACLStrategised<SSL *> ACLCertificate::UserRegistryEntry_(new ACLCertificateData (sslGetUserAttribute), ACLCertificateStrategy::Instance(), "user_cert"); | |
133 | ACL::Prototype ACLCertificate::CARegistryProtoype(&ACLCertificate::CARegistryEntry_, "ca_cert"); | |
134 | ACLStrategised<SSL *> ACLCertificate::CARegistryEntry_(new ACLCertificateData (sslGetCAAttribute), ACLCertificateStrategy::Instance(), "ca_cert"); | |
2d46f579 AR |
135 | #endif |
136 | ||
4d65855c | 137 | #ifdef USE_ARP_ACL |
af6a12ee AJ |
138 | ACL::Prototype ACLARP::RegistryProtoype(&ACLARP::RegistryEntry_, "arp"); |
139 | ACLARP ACLARP::RegistryEntry_("arp"); | |
2d46f579 AR |
140 | #endif |
141 | ||
ee326f02 | 142 | #if USE_IDENT |
af6a12ee AJ |
143 | ACL::Prototype ACLIdent::UserRegistryProtoype(&ACLIdent::UserRegistryEntry_, "ident"); |
144 | ACLIdent ACLIdent::UserRegistryEntry_(new ACLUserData, "ident"); | |
145 | ACL::Prototype ACLIdent::RegexRegistryProtoype(&ACLIdent::RegexRegistryEntry_, "ident_regex" ); | |
146 | ACLIdent ACLIdent::RegexRegistryEntry_(new ACLRegexData, "ident_regex"); | |
2d46f579 AR |
147 | #endif |
148 | ||
149 | ||
abca32cf CT |
150 | ACL::Prototype ACLProxyAuth::UserRegistryProtoype(&ACLProxyAuth::UserRegistryEntry_, "proxy_auth"); |
151 | ACLProxyAuth ACLProxyAuth::UserRegistryEntry_(new ACLUserData, "proxy_auth"); | |
152 | ACL::Prototype ACLProxyAuth::RegexRegistryProtoype(&ACLProxyAuth::RegexRegistryEntry_, "proxy_auth_regex" ); | |
153 | ACLProxyAuth ACLProxyAuth::RegexRegistryEntry_(new ACLRegexData, "proxy_auth_regex"); | |
2d46f579 | 154 | |
abca32cf CT |
155 | ACL::Prototype ACLMaxUserIP::RegistryProtoype(&ACLMaxUserIP::RegistryEntry_, "max_user_ip"); |
156 | ACLMaxUserIP ACLMaxUserIP::RegistryEntry_("max_user_ip"); | |
bb5e7a79 AJ |
157 | |
158 | ACL::Prototype ACLTag::RegistryProtoype(&ACLTag::RegistryEntry_, "tag"); | |
159 | ACLStrategised<const char *> ACLTag::RegistryEntry_(new ACLStringData, ACLTagStrategy::Instance(), "tag"); |