]> git.ipfire.org Git - thirdparty/squid.git/blame - src/acl/SourceDomain.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / acl / SourceDomain.h
CommitLineData
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 16class ACLSourceDomainStrategy : public ACLStrategy<char const *>
5dee515e 17{
62e76326 18
19public:
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
27private:
5dee515e 28 static ACLSourceDomainStrategy Instance_;
26ac0430 29 ACLSourceDomainStrategy() {}
62e76326 30
5dee515e 31 ACLSourceDomainStrategy&operator=(ACLSourceDomainStrategy const &);
32};
3841dd46 33
62e76326 34class SourceDomainLookup : public ACLChecklist::AsyncState
35{
36
37public:
3841dd46 38 static SourceDomainLookup *Instance();
39 virtual void checkForAsync(ACLChecklist *)const;
62e76326 40
41private:
3841dd46 42 static SourceDomainLookup instance_;
3ff65596 43 static void LookupDone(const char *, const DnsLookupDetails &, void *);
3841dd46 44};
45
62e76326 46class ACLSourceDomain
47{
48
49private:
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