]> git.ipfire.org Git - thirdparty/squid.git/blob - src/ssl/ServerBump.h
Peek and Splice: Interception support
[thirdparty/squid.git] / src / ssl / ServerBump.h
1 #ifndef _SQUID_SSL_PEEKER_H
2 #define _SQUID_SSL_PEEKER_H
3
4 #include "base/AsyncJob.h"
5 #include "base/CbcPointer.h"
6 #include "comm/forward.h"
7 #include "HttpRequest.h"
8 #include "ip/Address.h"
9
10 class ConnStateData;
11 class store_client;
12
13 namespace Ssl
14 {
15
16 /**
17 \ingroup ServerProtocolSSLAPI
18 * Maintains bump-server-first related information.
19 */
20 class ServerBump
21 {
22 public:
23 explicit ServerBump(HttpRequest *fakeRequest, StoreEntry *e = NULL, Ssl::BumpMode mode = Ssl::bumpServerFirst);
24 ~ServerBump();
25
26 /// faked, minimal request; required by server-side API
27 HttpRequest::Pointer request;
28 StoreEntry *entry; ///< for receiving Squid-generated error messages
29 Ssl::X509_Pointer serverCert; ///< HTTPS server certificate
30 Ssl::CertErrors *sslErrors; ///< SSL [certificate validation] errors
31 Ssl::BumpMode mode; ///< The SSL server bump mode
32 Ssl::BumpStep step; ///< The SSL server bumping step
33
34 private:
35 store_client *sc; ///< dummy client to prevent entry trimming
36
37 CBDATA_CLASS2(ServerBump);
38 };
39
40 } // namespace Ssl
41
42 #endif