]>
Commit | Line | Data |
---|---|---|
3841dd46 | 1 | /* |
bbc27441 | 2 | * Copyright (C) 1996-2014 The Squid Software Foundation and contributors |
3841dd46 | 3 | * |
bbc27441 AJ |
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. | |
3841dd46 | 7 | */ |
8 | ||
9 | #ifndef SQUID_ACLSOURCEDOMAIN_H | |
10 | #define SQUID_ACLSOURCEDOMAIN_H | |
127dce76 | 11 | #include "acl/Acl.h" |
127dce76 | 12 | #include "acl/Checklist.h" |
602d9612 | 13 | #include "acl/Data.h" |
127dce76 | 14 | #include "acl/Strategised.h" |
5dee515e | 15 | |
b0dd28ba | 16 | class ACLSourceDomainStrategy : public ACLStrategy<char const *> |
5dee515e | 17 | { |
62e76326 | 18 | |
19 | public: | |
33810b1d | 20 | virtual int match (ACLData<MatchType> * &, ACLFilledChecklist *, ACLFlags &); |
5dee515e | 21 | static ACLSourceDomainStrategy *Instance(); |
22 | /* Not implemented to prevent copies of the instance. */ | |
23 | /* Not private to prevent brain dead g+++ warnings about | |
24 | * private constructors with no friends */ | |
25 | ACLSourceDomainStrategy(ACLSourceDomainStrategy const &); | |
62e76326 | 26 | |
27 | private: | |
5dee515e | 28 | static ACLSourceDomainStrategy Instance_; |
26ac0430 | 29 | ACLSourceDomainStrategy() {} |
62e76326 | 30 | |
5dee515e | 31 | ACLSourceDomainStrategy&operator=(ACLSourceDomainStrategy const &); |
32 | }; | |
3841dd46 | 33 | |
62e76326 | 34 | class SourceDomainLookup : public ACLChecklist::AsyncState |
35 | { | |
36 | ||
37 | public: | |
3841dd46 | 38 | static SourceDomainLookup *Instance(); |
39 | virtual void checkForAsync(ACLChecklist *)const; | |
62e76326 | 40 | |
41 | private: | |
3841dd46 | 42 | static SourceDomainLookup instance_; |
3ff65596 | 43 | static void LookupDone(const char *, const DnsLookupDetails &, void *); |
3841dd46 | 44 | }; |
45 | ||
62e76326 | 46 | class ACLSourceDomain |
47 | { | |
48 | ||
49 | private: | |
5dee515e | 50 | static ACL::Prototype LiteralRegistryProtoype; |
51 | static ACLStrategised<char const *> LiteralRegistryEntry_; | |
52 | static ACL::Prototype RegexRegistryProtoype; | |
53 | static ACLStrategised<char const *> RegexRegistryEntry_; | |
3841dd46 | 54 | }; |
55 | ||
56 | #endif /* SQUID_ACLSOURCEDOMAIN_H */ | |
f53969cc | 57 |