source: squid-ssl/trunk/fuentes/src/acl/SourceDomain.h @ 5495

Last change on this file since 5495 was 5495, checked in by Juanma, 2 years ago

Initial release

File size: 1.6 KB
Line 
1/*
2 * Copyright (C) 1996-2015 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_ACLSOURCEDOMAIN_H
10#define SQUID_ACLSOURCEDOMAIN_H
11#include "acl/Acl.h"
12#include "acl/Checklist.h"
13#include "acl/Data.h"
14#include "acl/Strategised.h"
15
16class ACLSourceDomainStrategy : public ACLStrategy<char const *>
17{
18
19public:
20    virtual int match (ACLData<MatchType> * &, ACLFilledChecklist *, ACLFlags &);
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 &);
26
27private:
28    static ACLSourceDomainStrategy Instance_;
29    ACLSourceDomainStrategy() {}
30
31    ACLSourceDomainStrategy&operator=(ACLSourceDomainStrategy const &);
32};
33
34class SourceDomainLookup : public ACLChecklist::AsyncState
35{
36
37public:
38    static SourceDomainLookup *Instance();
39    virtual void checkForAsync(ACLChecklist *)const;
40
41private:
42    static SourceDomainLookup instance_;
43    static void LookupDone(const char *, const DnsLookupDetails &, void *);
44};
45
46class ACLSourceDomain
47{
48
49private:
50    static ACL::Prototype LiteralRegistryProtoype;
51    static ACLStrategised<char const *> LiteralRegistryEntry_;
52    static ACL::Prototype RegexRegistryProtoype;
53    static ACLStrategised<char const *> RegexRegistryEntry_;
54};
55
56#endif /* SQUID_ACLSOURCEDOMAIN_H */
57
Note: See TracBrowser for help on using the repository browser.