| 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 ee07f19ed5d9951486d6f774af12151026a2f963..45e36f9acf5da612218ae1e86a329463c34cd381 100644
|
| --- a/net/socket/ssl_client_socket_openssl.cc
|
| +++ b/net/socket/ssl_client_socket_openssl.cc
|
| @@ -355,6 +355,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),
|
| @@ -544,11 +545,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 {
|
| @@ -619,6 +616,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;
|
| }
|
| @@ -637,6 +636,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;
|
| }
|
| @@ -776,6 +777,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);
|
| @@ -784,6 +787,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);
|
|
|