]> git.ipfire.org Git - thirdparty/squid.git/blame - src/acl/DestinationDomain.h
Docs: Copyright updates for 2018 (#114)
[thirdparty/squid.git] / src / acl / DestinationDomain.h
CommitLineData
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 19class ACLDestinationDomainStrategy : public ACLStrategy<char const *>
20{
21
22public:
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
28private:
4eac3407 29 Acl::BooleanOptionValue lookupBanned; ///< Are DNS lookups allowed?
7660b45d 30};
3841dd46 31
63be0a78 32/// \ingroup ACLAPI
62e76326 33class DestinationDomainLookup : public ACLChecklist::AsyncState
34{
35
36public:
3841dd46 37 static DestinationDomainLookup *Instance();
38 virtual void checkForAsync(ACLChecklist *)const;
62e76326 39
40private:
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