]> git.ipfire.org Git - thirdparty/squid.git/blob - src/auth/AclMaxUserIp.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / auth / AclMaxUserIp.h
1 /*
2 * Copyright (C) 1996-2019 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 "auth/UserRequest.h"
16
17 class ACLMaxUserIP : public ACL
18 {
19 MEMPROXY_CLASS(ACLMaxUserIP);
20
21 public:
22 explicit ACLMaxUserIP(char const *theClass);
23
24 virtual ACL *clone() const;
25 virtual char const *typeString() const;
26 virtual const Acl::Options &options();
27 virtual void parse();
28 virtual int match(ACLChecklist *cl);
29 virtual SBufList dump() const;
30 virtual bool empty() const;
31 virtual bool valid() const;
32 virtual bool requiresRequest() const {return true;}
33
34 int getMaximum() const {return maximum;}
35
36 private:
37 int match(Auth::UserRequest::Pointer auth_user_request, Ip::Address const &src_addr);
38
39 public:
40 Acl::BooleanOptionValue beStrict; ///< Enforce "one user, one device" policy?
41
42 private:
43 char const *class_;
44 int maximum;
45 };
46
47 #endif /* USE_AUTH */
48 #endif /* SQUID_ACLMAXUSERIP_H */
49