From: Christos Tsantilas Date: Fri, 12 Feb 2016 10:45:47 +0000 (+0200) Subject: Fix "dial: Ssl::PeerConnector::sslCrtvdHandleReply threw exception: callback != NULL" X-Git-Tag: SQUID_4_0_6~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=177a824c03e7ce797853ddfc9679f23692f81940;p=thirdparty%2Fsquid.git Fix "dial: Ssl::PeerConnector::sslCrtvdHandleReply threw exception: callback != NULL" This bug investigated after the r14528 patch. The (forgotten?) Ssl::PeekingPeerConnector::callback member is always NULL and hides the callback member of the parent Ssl::PeerConnector class. This is has as result the failure of "Must(callback != NULL)" clause inside the Ssl::PeekingPeerConnector::tunnelInsteadOfNegotiating method investigated with the r14528 patch. This is a Measurement Factory project --- diff --git a/src/ssl/PeekingPeerConnector.h b/src/ssl/PeekingPeerConnector.h index 280229bbb4..4dbc122c39 100644 --- a/src/ssl/PeekingPeerConnector.h +++ b/src/ssl/PeekingPeerConnector.h @@ -73,7 +73,6 @@ private: void tunnelInsteadOfNegotiating(); Comm::ConnectionPointer clientConn; ///< TCP connection to the client - AsyncCall::Pointer callback; ///< we call this with the results AsyncCall::Pointer closeHandler; ///< we call this when the connection closed bool splice; ///< whether we are going to splice or not bool resumingSession; ///< whether it is an SSL resuming session connection diff --git a/src/ssl/PeerConnector.h b/src/ssl/PeerConnector.h index a6752b3336..fc50f57b7f 100644 --- a/src/ssl/PeerConnector.h +++ b/src/ssl/PeerConnector.h @@ -161,6 +161,7 @@ protected: /// validator Ssl::CertErrors *certErrors; AccessLogEntryPointer al; ///< info for the future access.log entry + AsyncCall::Pointer callback; ///< we call this with the results private: PeerConnector(const PeerConnector &); // not implemented PeerConnector &operator =(const PeerConnector &); // not implemented @@ -173,7 +174,6 @@ private: /// A wrapper function for negotiateSsl for use with Comm::SetSelect static void NegotiateSsl(int fd, void *data); - AsyncCall::Pointer callback; ///< we call this with the results AsyncCall::Pointer closeHandler; ///< we call this when the connection closed time_t negotiationTimeout; ///< the SSL connection timeout to use time_t startTime; ///< when the peer connector negotiation started