]> git.ipfire.org Git - thirdparty/squid.git/blob - src/auth/AclMaxUserIp.h
Boilerplate: update copyright blurbs on src/
[thirdparty/squid.git] / src / auth / AclMaxUserIp.h
1 /*
2 * Copyright (C) 1996-2014 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_ACLMAXUSERIP_H
10 #define SQUID_ACLMAXUSERIP_H
11
12 #if USE_AUTH
13
14 #include "acl/Acl.h"
15 #include "acl/Checklist.h"
16 #include "auth/UserRequest.h"
17
18 /// \ingroup ACLAPI
19 class ACLMaxUserIP : public ACL
20 {
21 public:
22 MEMPROXY_CLASS(ACLMaxUserIP);
23
24 ACLMaxUserIP(char const *theClass);
25 ACLMaxUserIP(ACLMaxUserIP const &old);
26 ~ACLMaxUserIP();
27 ACLMaxUserIP &operator =(ACLMaxUserIP const &);
28
29 virtual ACL *clone() const;
30 virtual char const *typeString() const;
31 virtual void parse();
32 virtual int match(ACLChecklist *cl);
33 virtual SBufList dump() const;
34 virtual bool empty() const;
35 virtual bool valid() const;
36 virtual bool requiresRequest() const {return true;}
37
38 int getMaximum() const {return maximum;}
39
40 bool getStrict() const {return flags.isSet(ACL_F_STRICT);}
41
42 private:
43 static Prototype RegistryProtoype;
44 static ACLMaxUserIP RegistryEntry_;
45 static ACLFlag SupportedFlags[];
46
47 int match(Auth::UserRequest::Pointer auth_user_request, Ip::Address const &src_addr);
48 char const *class_;
49 int maximum;
50 };
51
52 MEMPROXY_CLASS_INLINE(ACLMaxUserIP);
53
54 #endif /* USE_AUTH */
55 #endif /* SQUID_ACLMAXUSERIP_H */