| Index: net/socket/ssl_client_socket_openssl.cc
|
| diff --git a/net/socket/ssl_client_socket_openssl.cc b/net/socket/ssl_client_socket_openssl.cc
|
| index b253dfeae50884859e2dceb3657363d2a6834b29..e5a0f6c3eae2089acea33a246d0e83aa41e1ed68 100644
|
| --- a/net/socket/ssl_client_socket_openssl.cc
|
| +++ b/net/socket/ssl_client_socket_openssl.cc
|
| @@ -348,6 +348,7 @@ SSLClientSocketOpenSSL::SSLClientSocketOpenSSL(
|
| pending_read_error_(kNoPendingReadResult),
|
| transport_write_error_(OK),
|
| completed_handshake_(false),
|
| + was_used_to_convey_data_(false),
|
| client_auth_cert_needed_(false),
|
| cert_verifier_(context.cert_verifier),
|
| server_bound_cert_service_(context.server_bound_cert_service),
|
| @@ -537,11 +538,7 @@ void SSLClientSocketOpenSSL::SetOmniboxSpeculation() {
|
| }
|
|
|
| bool SSLClientSocketOpenSSL::WasEverUsed() const {
|
| - if (transport_.get() && transport_->socket())
|
| - return transport_->socket()->WasEverUsed();
|
| -
|
| - NOTREACHED();
|
| - return false;
|
| + return was_used_to_convey_data_;
|
| }
|
|
|
| bool SSLClientSocketOpenSSL::UsingTCPFastOpen() const {
|
| @@ -612,6 +609,8 @@ int SSLClientSocketOpenSSL::Read(IOBuffer* buf,
|
| if (rv == ERR_IO_PENDING) {
|
| user_read_callback_ = callback;
|
| } else {
|
| + if (rv > 0)
|
| + was_used_to_convey_data_ = true;
|
| user_read_buf_ = NULL;
|
| user_read_buf_len_ = 0;
|
| }
|
| @@ -630,6 +629,8 @@ int SSLClientSocketOpenSSL::Write(IOBuffer* buf,
|
| if (rv == ERR_IO_PENDING) {
|
| user_write_callback_ = callback;
|
| } else {
|
| + if (rv > 0)
|
| + was_used_to_convey_data_ = true;
|
| user_write_buf_ = NULL;
|
| user_write_buf_len_ = 0;
|
| }
|
| @@ -769,6 +770,8 @@ bool SSLClientSocketOpenSSL::Init() {
|
| void SSLClientSocketOpenSSL::DoReadCallback(int rv) {
|
| // Since Run may result in Read being called, clear |user_read_callback_|
|
| // up front.
|
| + if (rv > 0)
|
| + was_used_to_convey_data_ = true;
|
| user_read_buf_ = NULL;
|
| user_read_buf_len_ = 0;
|
| base::ResetAndReturn(&user_read_callback_).Run(rv);
|
| @@ -777,6 +780,8 @@ void SSLClientSocketOpenSSL::DoReadCallback(int rv) {
|
| void SSLClientSocketOpenSSL::DoWriteCallback(int rv) {
|
| // Since Run may result in Write being called, clear |user_write_callback_|
|
| // up front.
|
| + if (rv > 0)
|
| + was_used_to_convey_data_ = true;
|
| user_write_buf_ = NULL;
|
| user_write_buf_len_ = 0;
|
| base::ResetAndReturn(&user_write_callback_).Run(rv);
|
|
|