]> git.ipfire.org Git - thirdparty/squid.git/blob - src/acl/DestinationDomain.h
Docs: Copyright updates for 2018 (#114)
[thirdparty/squid.git] / src / acl / DestinationDomain.h
1 /*
2 * Copyright (C) 1996-2018 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_ACLDESTINATIONDOMAIN_H
10 #define SQUID_ACLDESTINATIONDOMAIN_H
11
12 #include "acl/Acl.h"
13 #include "acl/Checklist.h"
14 #include "acl/Data.h"
15 #include "acl/Strategised.h"
16 #include "dns/forward.h"
17
18 /// \ingroup ACLAPI
19 class ACLDestinationDomainStrategy : public ACLStrategy<char const *>
20 {
21
22 public:
23 /* ACLStrategy API */
24 virtual int match (ACLData<MatchType> * &, ACLFilledChecklist *);
25 virtual bool requiresRequest() const {return true;}
26 virtual const Acl::Options &options();
27
28 private:
29 Acl::BooleanOptionValue lookupBanned; ///< Are DNS lookups allowed?
30 };
31
32 /// \ingroup ACLAPI
33 class DestinationDomainLookup : public ACLChecklist::AsyncState
34 {
35
36 public:
37 static DestinationDomainLookup *Instance();
38 virtual void checkForAsync(ACLChecklist *)const;
39
40 private:
41 static DestinationDomainLookup instance_;
42 static void LookupDone(const char *, const Dns::LookupDetails &, void *);
43 };
44
45 #endif /* SQUID_ACLDESTINATIONDOMAIN_H */
46