PeekingPeerConnector.cc
Go to the documentation of this file.
55 CallJobHere1(83, 7, CbcPointer<PeekingPeerConnector>(peerConnect), Ssl::PeekingPeerConnector, checkForPeekAndSpliceDone, aclAnswer);
101 Must(finalAction == Ssl::bumpSplice || finalAction == Ssl::bumpBump || finalAction == Ssl::bumpTerminate);
237 const auto errDetail = dynamic_cast<Security::ErrorDetail *>(error ? error->detail.getRaw() : nullptr);
301 if ((srvBio->bumpMode() == Ssl::bumpPeek || srvBio->bumpMode() == Ssl::bumpStare) && srvBio->holdWrite()) {
311 Ssl::PeekingPeerConnector::noteNegotiationError(const Security::ErrorDetailPointer &errorDetail)
359 (srvBio->bumpMode() == Ssl::bumpPeek || srvBio->bumpMode() == Ssl::bumpStare) && srvBio->holdWrite()) {
virtual void noteNegotiationDone(ErrorState *error)
Definition: PeekingPeerConnector.cc:227
virtual void noteWantWrite()
Definition: PeekingPeerConnector.cc:294
Definition: AsyncJob.h:32
void startTunneling()
Abruptly stops TLS negotiation and starts tunneling.
Definition: PeekingPeerConnector.cc:274
static bool action(int fd, size_t metasize, const char *fn, const char *url, const SquidMetaList &meta)
Definition: purge.cc:311
Definition: FilledChecklist.h:33
void setClientFeatures(Security::TlsDetails::Pointer const &details, SBuf const &hello)
Sets the random number to use in client SSL HELLO message.
Definition: bio.cc:263
void serverCertificateVerified()
Definition: PeekingPeerConnector.cc:395
virtual bool initialize(Security::SessionPointer &)
Definition: PeerConnector.cc:138
void checkForPeekAndSplice()
Definition: PeekingPeerConnector.cc:68
Definition: Acl.h:122
Definition: bio.h:71
void applyTlsDetailsToSSL(SSL *ssl, Security::TlsDetails::Pointer const &details, Ssl::BumpMode bumpMode)
Definition: bio.cc:569
void banAction(const Acl::Answer &action)
add action to the list of banned actions
Definition: Checklist.cc:395
void error(char *format,...)
Ssl::BumpMode checkForPeekAndSpliceGuess() const
Guesses the final bumping decision when no ssl_bump rules match.
Definition: PeekingPeerConnector.cc:129
void handleServerCertificate()
Definition: PeekingPeerConnector.cc:373
Definition: CbcPointer.h:26
virtual bool initialize(Security::SessionPointer &)
Definition: PeekingPeerConnector.cc:152
AccessLogEntry::Pointer al
info for the future access.log, and external ACL
Definition: FilledChecklist.h:101
A PeerConnector for HTTP origin servers. Capable of SslBumping.
Definition: PeekingPeerConnector.h:20
Definition: bio.h:123
PeerOptions ProxyOutgoingConfig
configuration options for DIRECT server access
Definition: PeerOptions.cc:24
PeekingPeerConnector(HttpRequestPointer &aRequest, const Comm::ConnectionPointer &aServerConn, const Comm::ConnectionPointer &aClientConn, AsyncCall::Pointer &aCallback, const AccessLogEntryPointer &alp, time_t timeout=0)
Definition: PeekingPeerConnector.cc:28
CBDATA_NAMESPACED_CLASS_INIT(Ssl, PeekingPeerConnector)
Definition: Config.h:18
int ssl_ex_index_ssl_peeked_cert
Definition: client_side.h:84
virtual void noteNegotiationError(const Security::ErrorDetailPointer &)
Called when the SSL_connect function aborts with an SSL negotiation error.
Definition: PeerConnector.cc:488
Definition: Xaction.cc:48
void switchToTunnel(HttpRequest *request, const Comm::ConnectionPointer &clientConn, const Comm::ConnectionPointer &srvConn, const SBuf &preReadServerData)
Definition: tunnel.cc:1462
virtual void syncAle(HttpRequest *adaptedRequest, const char *logUri) const
assigns uninitialized adapted_request and url ALE components
Definition: FilledChecklist.cc:131
Definition: ServerBump.h:34
Definition: ErrorDetail.h:36
int ssl_ex_index_server
void recordInput(bool r)
Enables or disables the input data recording, for internal analysis.
Definition: bio.h:154
virtual Security::ContextPointer getTlsContext()
Definition: PeekingPeerConnector.cc:146
void checkForPeekAndSpliceDone(Acl::Answer)
Callback function for ssl_bump acl check in step3 SSL bump step.
Definition: PeekingPeerConnector.cc:59
static void cbCheckForPeekAndSpliceDone(Acl::Answer, void *data)
A wrapper function for checkForPeekAndSpliceDone for use with acl.
Definition: PeekingPeerConnector.cc:51
void checkForPeekAndSpliceMatched(const Ssl::BumpMode finalMode)
Handles the final bumping decision.
Definition: PeekingPeerConnector.cc:93
virtual void noteNegotiationError(const Security::ErrorDetailPointer &)
Called when the SSL_connect function aborts with an SSL negotiation error.
Definition: PeekingPeerConnector.cc:311
void updateSessionOptions(Security::SessionPointer &)
setup any library-specific options that can be set for the given session
Definition: PeerOptions.cc:770
struct SquidConfig::@121 ssl_client
Definition: errorpage.h:87
void nonBlockingCheck(ACLCB *callback, void *callback_data)
Definition: Checklist.cc:237
void resetWithoutLocking(T *t)
Reset raw pointer - unlock any previous one and save new one without locking.
Definition: LockingPointer.h:111
int ssl_ex_index_ssl_error_detail
CbcPointer< ConnStateData > clientConnectionManager
Definition: HttpRequest.h:232
#define CallJobHere1(debugSection, debugLevel, job, Class, method, arg1)
Definition: AsyncJobCalls.h:63