2 * Copyright (C) 1996-2014 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_ACLPROXYAUTH_H
10 #define SQUID_ACLPROXYAUTH_H
15 #include "acl/Checklist.h"
18 class ProxyAuthLookup
: public ACLChecklist::AsyncState
22 static ProxyAuthLookup
*Instance();
23 virtual void checkForAsync(ACLChecklist
*) const;
26 static ProxyAuthLookup instance_
;
27 static void LookupDone(void *data
);
30 class ACLProxyAuth
: public ACL
32 MEMPROXY_CLASS(ACLProxyAuth
);
36 ACLProxyAuth(ACLData
<char const *> *, char const *);
37 ACLProxyAuth(ACLProxyAuth
const &);
38 ACLProxyAuth
&operator =(ACLProxyAuth
const &);
40 virtual char const *typeString() const;
42 virtual bool isProxyAuth() const {return true;}
44 virtual int match(ACLChecklist
*checklist
);
45 virtual SBufList
dump() const;
46 virtual bool valid() const;
47 virtual bool empty() const;
48 virtual bool requiresRequest() const {return true;}
50 virtual ACL
*clone() const;
51 virtual int matchForCache(ACLChecklist
*checklist
);
54 static Prototype UserRegistryProtoype
;
55 static ACLProxyAuth UserRegistryEntry_
;
56 static Prototype RegexRegistryProtoype
;
57 static ACLProxyAuth RegexRegistryEntry_
;
58 int matchProxyAuth(ACLChecklist
*);
59 ACLData
<char const *> *data
;
64 #endif /* SQUID_ACLPROXYAUTH_H */