FilledChecklist.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2023 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_ACLFILLED_CHECKLIST_H
10#define SQUID_ACLFILLED_CHECKLIST_H
11
12#include "AccessLogEntry.h"
13#include "acl/Checklist.h"
14#include "acl/forward.h"
15#include "base/CbcPointer.h"
16#include "error/forward.h"
17#include "ip/Address.h"
18#if USE_AUTH
19#include "auth/UserRequest.h"
20#endif
21#include "security/CertError.h"
22
23class CachePeer;
24class ConnStateData;
25class HttpRequest;
26class HttpReply;
27
33{
35
36public:
38 ACLFilledChecklist(const acl_access *, HttpRequest *, const char *ident = nullptr);
39 ~ACLFilledChecklist() override;
40
42 void setRequest(HttpRequest *);
44 void setIdent(const char *userIdentity);
45
46public:
48 ConnStateData * conn() const;
49
51 int fd() const;
52
54 void setConn(ConnStateData *);
56 void fd(int aDescriptor);
57
58 //int authenticated();
59
60 bool destinationDomainChecked() const;
62 bool sourceDomainChecked() const;
64
65 // ACLChecklist API
66 bool hasRequest() const override { return request != nullptr; }
67 bool hasReply() const override { return reply != nullptr; }
68 bool hasAle() const override { return al != nullptr; }
69 void syncAle(HttpRequest *adaptedRequest, const char *logUri) const override;
70 void verifyAle() const override;
71
72public:
77 char *dst_rdns;
78
81
83#if USE_AUTH
85#endif
86#if SQUID_SNMP
88#endif
89
90 // TODO: RefCount errors; do not ignore them because their "owner" is gone!
96
101
103
105
107
108private:
110 int fd_;
117};
118
120inline
122{
123 // this should always be safe because ACLChecklist is an abstract class
124 // and ACLFilledChecklist is its only [concrete] child
125 return dynamic_cast<ACLFilledChecklist*>(checklist);
126}
127
128#endif /* SQUID_ACLFILLED_CHECKLIST_H */
129
ACLFilledChecklist * Filled(ACLChecklist *checklist)
convenience and safety wrapper for dynamic_cast<ACLFilledChecklist*>
#define acl_access
Definition: forward.h:45
CBDATA_CLASS(ACLFilledChecklist)
bool destinationDomainChecked() const
void setIdent(const char *userIdentity)
configure rfc931 user identity for the first time
ConnStateData * conn_
HttpRequest * request
ConnStateData * conn() const
The client connection manager.
Ip::Address dst_addr
void setRequest(HttpRequest *)
configure client request-related fields for the first time
~ACLFilledChecklist() override
ACLFilledChecklist(const ACLFilledChecklist &)
not implemented; will cause link failures if used
void setConn(ConnStateData *)
set either conn
Security::CertPointer serverCert
int fd() const
The client side fd. It uses conn() if available.
char rfc931[USER_IDENT_SZ]
Ip::Address src_addr
ACLFilledChecklist & operator=(const ACLFilledChecklist &)
not implemented; will cause link failures if used
void verifyAle() const override
warns if there are uninitialized ALE components and fills them
CbcPointer< Security::CertErrors > sslErrors
void markDestinationDomainChecked()
bool hasAle() const override
bool sourceDomainChecked() const
AccessLogEntry::Pointer al
info for the future access.log, and external ACL
Auth::UserRequest::Pointer auth_user_request
bool hasRequest() const override
ExternalACLEntryPointer extacl_entry
void syncAle(HttpRequest *adaptedRequest, const char *logUri) const override
assigns uninitialized adapted_request and url ALE components
bool hasReply() const override
Definition: SBuf.h:94
#define USER_IDENT_SZ
Definition: defines.h:37
err_type
Definition: forward.h:14

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors