ClientRequestContext.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_SRC_CLIENTREQUESTCONTEXT_H
10 #define SQUID_SRC_CLIENTREQUESTCONTEXT_H
11 
12 #include "acl/forward.h"
13 #include "base/RefCount.h"
14 #include "cbdata.h"
15 #include "defines.h"
16 #include "dns/forward.h"
17 #include "helper/forward.h"
18 #include "ipcache.h"
19 
20 #if USE_ADAPTATION
21 #include "adaptation/forward.h"
22 #endif
23 
24 class ACLChecklist;
25 class ClientHttpRequest;
26 class ErrorState;
27 
29 {
31 
32 public:
34  ~ClientRequestContext() override;
35 
36  bool httpStateIsValid();
37  void hostHeaderVerify();
39  void hostHeaderVerifyFailed(const char *A, const char *B);
40  void clientAccessCheck();
41  void clientAccessCheck2();
42  void clientAccessCheckDone(const Acl::Answer &);
43  void clientRedirectStart();
44  void clientRedirectDone(const Helper::Reply &);
45  void clientStoreIdStart();
46  void clientStoreIdDone(const Helper::Reply &);
47  void checkNoCache();
48  void checkNoCacheDone(const Acl::Answer &);
49 #if USE_ADAPTATION
50  void adaptationAccessCheck();
51 #endif
52 #if USE_OPENSSL
53 
59  bool sslBumpAccessCheck();
61  void sslBumpAccessCheckDone(const Acl::Answer &answer);
62 #endif
63 
67 
69  bool http_access_done = false;
71 #if USE_ADAPTATION
73 #endif
74  bool redirect_done = false;
75  bool store_id_done = false;
76  bool no_cache_done = false;
77  bool interpreted_req_hdrs = false;
78  bool toClientMarkingDone = false;
79 #if USE_OPENSSL
80  bool sslBumpCheckDone = false;
81 #endif
82 
83  bool readNextRequest = false;
84  ErrorState *error = nullptr;
85 
86 #if FOLLOW_X_FORWARDED_FOR
87  size_t currentXffHopNumber = 0;
88 #endif
89 };
90 
91 #endif /* SQUID_SRC_CLIENTREQUESTCONTEXT_H */
92 
bool readNextRequest
whether Squid should read after error handling
void hostHeaderIpVerify(const ipcache_addrs *, const Dns::LookupDetails &)
#define CBDATA_CLASS(type)
Definition: cbdata.h:289
ErrorState * error
saved error page for centralized/delayed processing
void clientAccessCheckDone(const Acl::Answer &)
ClientRequestContext(ClientHttpRequest *)
ClientHttpRequest * http
void checkNoCache()
applies "cache allow/deny" rules, asynchronously if needed
void clientRedirectDone(const Helper::Reply &)
static uint32 A
Definition: md4.c:43
void clientStoreIdDone(const Helper::Reply &)
void hostHeaderVerifyFailed(const char *A, const char *B)
encapsulates DNS lookup results
Definition: LookupDetails.h:22
size_t currentXffHopNumber
number of X-Forwarded-For header values processed so far
void sslBumpAccessCheckDone(const Acl::Answer &answer)
The callback function for ssl-bump access check list.
void checkNoCacheDone(const Acl::Answer &)
#define REDIRECT_NONE
Definition: defines.h:53
static uint32 B
Definition: md4.c:43

 

Introduction

Documentation

Support

Miscellaneous