]> git.ipfire.org Git - thirdparty/squid.git/blame - src/auth/AclMaxUserIp.h
Source Format Enforcement (#532)
[thirdparty/squid.git] / src / auth / AclMaxUserIp.h
CommitLineData
5dee515e 1/*
77b1029d 2 * Copyright (C) 1996-2020 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 17class ACLMaxUserIP : public ACL
62e76326 18{
b001e822 19 MEMPROXY_CLASS(ACLMaxUserIP);
b0dd28ba 20
741c2986 21public:
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 36private:
d6d0eb11 37 int match(Auth::UserRequest::Pointer auth_user_request, Ip::Address const &src_addr);
4eac3407
CT
38
39public:
40 Acl::BooleanOptionValue beStrict; ///< Enforce "one user, one device" policy?
41
42private:
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