]> git.ipfire.org Git - thirdparty/squid.git/blame - src/ident/AclIdent.h
Source Format Enforcement (#1234)
[thirdparty/squid.git] / src / ident / AclIdent.h
CommitLineData
8000a965 1/*
b8ae064d 2 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
8000a965 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.
8000a965 7 */
8
4daaf3cb
AJ
9#ifndef SQUID_IDENT_ACLIDENT_H
10#define SQUID_IDENT_ACLIDENT_H
11
4daaf3cb 12#if USE_IDENT
63be0a78 13
3ad63615 14#include "acl/Checklist.h"
3841dd46 15
63be0a78 16/// \ingroup ACLAPI
62e76326 17class IdentLookup : public ACLChecklist::AsyncState
18{
19
20public:
3841dd46 21 static IdentLookup *Instance();
337b9aa4 22 void checkForAsync(ACLChecklist *)const override;
62e76326 23
24private:
3841dd46 25 static IdentLookup instance_;
26 static void LookupDone(const char *ident, void *data);
27};
8000a965 28
3ad63615
AR
29#include "acl/Acl.h"
30#include "acl/Data.h"
e1f7507e 31
63be0a78 32/// \ingroup ACLAPI
62e76326 33class ACLIdent : public ACL
34{
b001e822 35 MEMPROXY_CLASS(ACLIdent);
8000a965 36
741c2986 37public:
5dee515e 38 ACLIdent(ACLData<char const *> *newData, char const *);
337b9aa4 39 ~ACLIdent() override;
62e76326 40
4eac3407 41 /* ACL API */
337b9aa4
AR
42 char const *typeString() const override;
43 void parse() override;
44 bool isProxyAuth() const override {return true;}
45 int match(ACLChecklist *checklist) override;
46 SBufList dump() const override;
47 bool empty () const override;
62e76326 48
49private:
8d76389c 50 /* ACL API */
337b9aa4 51 const Acl::Options &lineOptions() override;
8d76389c 52
5dee515e 53 ACLData<char const *> *data;
3841dd46 54 char const *type_;
8000a965 55};
56
4daaf3cb
AJ
57#endif /* USE_IDENT */
58#endif /* SQUID_IDENT_ACLIDENT_H */
f53969cc 59