]>
Commit | Line | Data |
---|---|---|
3841dd46 | 1 | /* |
5b74111a | 2 | * Copyright (C) 1996-2018 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 | ||
945c70bb AR |
9 | #ifndef SQUID_ACLDESTINATIONDOMAIN_H |
10 | #define SQUID_ACLDESTINATIONDOMAIN_H | |
63be0a78 | 11 | |
127dce76 | 12 | #include "acl/Acl.h" |
127dce76 | 13 | #include "acl/Checklist.h" |
602d9612 | 14 | #include "acl/Data.h" |
127dce76 | 15 | #include "acl/Strategised.h" |
23032e75 | 16 | #include "dns/forward.h" |
7660b45d | 17 | |
63be0a78 | 18 | /// \ingroup ACLAPI |
7660b45d | 19 | class ACLDestinationDomainStrategy : public ACLStrategy<char const *> |
20 | { | |
21 | ||
22 | public: | |
4eac3407 CT |
23 | /* ACLStrategy API */ |
24 | virtual int match (ACLData<MatchType> * &, ACLFilledChecklist *); | |
51734f15 | 25 | virtual bool requiresRequest() const {return true;} |
4eac3407 | 26 | virtual const Acl::Options &options(); |
7660b45d | 27 | |
28 | private: | |
4eac3407 | 29 | Acl::BooleanOptionValue lookupBanned; ///< Are DNS lookups allowed? |
7660b45d | 30 | }; |
3841dd46 | 31 | |
63be0a78 | 32 | /// \ingroup ACLAPI |
62e76326 | 33 | class DestinationDomainLookup : public ACLChecklist::AsyncState |
34 | { | |
35 | ||
36 | public: | |
3841dd46 | 37 | static DestinationDomainLookup *Instance(); |
38 | virtual void checkForAsync(ACLChecklist *)const; | |
62e76326 | 39 | |
40 | private: | |
3841dd46 | 41 | static DestinationDomainLookup instance_; |
4a3b98d7 | 42 | static void LookupDone(const char *, const Dns::LookupDetails &, void *); |
3841dd46 | 43 | }; |
44 | ||
945c70bb | 45 | #endif /* SQUID_ACLDESTINATIONDOMAIN_H */ |
f53969cc | 46 |