]>
Commit | Line | Data |
---|---|---|
5dee515e | 1 | /* |
5b74111a | 2 | * Copyright (C) 1996-2018 The Squid Software Foundation and contributors |
5dee515e | 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. | |
5dee515e | 7 | */ |
8 | ||
b0dd28ba | 9 | #ifndef SQUID_ACLMAXUSERIP_H |
10 | #define SQUID_ACLMAXUSERIP_H | |
63be0a78 | 11 | |
2f1431ea AJ |
12 | #if USE_AUTH |
13 | ||
c0941a6a | 14 | #include "acl/Acl.h" |
a33a428a | 15 | #include "auth/UserRequest.h" |
5dee515e | 16 | |
b0dd28ba | 17 | class ACLMaxUserIP : public ACL |
62e76326 | 18 | { |
b001e822 | 19 | MEMPROXY_CLASS(ACLMaxUserIP); |
b0dd28ba | 20 | |
741c2986 | 21 | public: |
4eac3407 | 22 | explicit ACLMaxUserIP(char const *theClass); |
b0dd28ba | 23 | |
d6d0eb11 | 24 | virtual ACL *clone() const; |
b0dd28ba | 25 | virtual char const *typeString() const; |
4eac3407 | 26 | virtual const Acl::Options &options(); |
b0dd28ba | 27 | virtual void parse(); |
d6d0eb11 | 28 | virtual int match(ACLChecklist *cl); |
9b859d6f | 29 | virtual SBufList dump() const; |
d6d0eb11 AJ |
30 | virtual bool empty() const; |
31 | virtual bool valid() const; | |
b0dd28ba | 32 | virtual bool requiresRequest() const {return true;} |
33 | ||
d295d770 | 34 | int getMaximum() const {return maximum;} |
35 | ||
b0dd28ba | 36 | private: |
d6d0eb11 | 37 | int match(Auth::UserRequest::Pointer auth_user_request, Ip::Address const &src_addr); |
4eac3407 CT |
38 | |
39 | public: | |
40 | Acl::BooleanOptionValue beStrict; ///< Enforce "one user, one device" policy? | |
41 | ||
42 | private: | |
b0dd28ba | 43 | char const *class_; |
4b0f5de8 | 44 | int maximum; |
b0dd28ba | 45 | }; |
5dee515e | 46 | |
2f1431ea | 47 | #endif /* USE_AUTH */ |
b0dd28ba | 48 | #endif /* SQUID_ACLMAXUSERIP_H */ |
f53969cc | 49 |