]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/security/BlindPeerConnector.h
2 * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
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.
9 #ifndef SQUID_SRC_SECURITY_BLINDPEERCONNECTOR_H
10 #define SQUID_SRC_SECURITY_BLINDPEERCONNECTOR_H
12 #include "security/PeerConnector.h"
19 /// A simple PeerConnector for SSL/TLS cache_peers. No SslBump capabilities.
20 class BlindPeerConnector
: public Security::PeerConnector
{
21 CBDATA_CLASS(BlindPeerConnector
);
23 BlindPeerConnector(HttpRequestPointer
&aRequest
,
24 const Comm::ConnectionPointer
&aServerConn
,
25 AsyncCall::Pointer
&aCallback
,
26 const AccessLogEntryPointer
&alp
,
27 const time_t timeout
= 0) :
28 AsyncJob("Security::BlindPeerConnector"),
29 Security::PeerConnector(aServerConn
, aCallback
, alp
, timeout
)
34 /* Security::PeerConnector API */
36 /// Calls parent initialize(), configures the created TLS session object
37 /// to try and reuse a TLS session and sets the hostname to use for
38 /// certificate validation
39 /// \returns true on successful initialization
40 virtual bool initialize(Security::SessionPointer
&);
42 /// Return the configured TLS context object
43 virtual Security::ContextPointer
getTlsContext();
45 /// On error calls peerConnectFailed().
46 /// On success store the used TLS session for later use.
47 virtual void noteNegotiationDone(ErrorState
*);
50 } // namespace Security
52 #endif /* SQUID_SRC_SECURITY_BLINDPEERCONNECTOR_H */