2 * Copyright (C) 1996-2015 The Squid Software Foundation and contributors
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.
9 #ifndef SQUID_ACLDESTINATIONDOMAIN_H
10 #define SQUID_ACLDESTINATIONDOMAIN_H
13 #include "acl/Checklist.h"
15 #include "acl/Strategised.h"
16 #include "dns/forward.h"
19 class ACLDestinationDomainStrategy
: public ACLStrategy
<char const *>
23 virtual int match (ACLData
<MatchType
> * &, ACLFilledChecklist
*, ACLFlags
&);
24 static ACLDestinationDomainStrategy
*Instance();
25 virtual bool requiresRequest() const {return true;}
28 * Not implemented to prevent copies of the instance.
30 * Not private to prevent brain dead g+++ warnings about
31 * private constructors with no friends
33 ACLDestinationDomainStrategy(ACLDestinationDomainStrategy
const &);
36 static ACLDestinationDomainStrategy Instance_
;
37 ACLDestinationDomainStrategy() {}
39 ACLDestinationDomainStrategy
&operator=(ACLDestinationDomainStrategy
const &);
43 class DestinationDomainLookup
: public ACLChecklist::AsyncState
47 static DestinationDomainLookup
*Instance();
48 virtual void checkForAsync(ACLChecklist
*)const;
51 static DestinationDomainLookup instance_
;
52 static void LookupDone(const char *, const Dns::LookupDetails
&, void *);
56 class ACLDestinationDomain
60 static ACL::Prototype LiteralRegistryProtoype
;
61 static ACLStrategised
<char const *> LiteralRegistryEntry_
;
62 static ACL::Prototype RegexRegistryProtoype
;
63 static ACLStrategised
<char const *> RegexRegistryEntry_
;
66 #endif /* SQUID_ACLDESTINATIONDOMAIN_H */