| Index: net/cert_net/nss_ocsp.cc
|
| diff --git a/net/cert_net/nss_ocsp.cc b/net/cert_net/nss_ocsp.cc
|
| index 46000565fe1eeae65f216f386aedfcc38709e896..0eb4678434b247866712812c4e54be2ef1f9719c 100644
|
| --- a/net/cert_net/nss_ocsp.cc
|
| +++ b/net/cert_net/nss_ocsp.cc
|
| @@ -299,16 +299,17 @@ class OCSPRequestSession
|
| }
|
| }
|
|
|
| - void OnResponseStarted(URLRequest* request) override {
|
| + void OnResponseStarted(URLRequest* request, int net_error) override {
|
| DCHECK_EQ(request_.get(), request);
|
| DCHECK_EQ(base::MessageLoopForIO::current(), io_loop_);
|
| + DCHECK_NE(ERR_IO_PENDING, net_error);
|
|
|
| int bytes_read = 0;
|
| - if (request->status().is_success()) {
|
| + if (net_error == OK) {
|
| response_code_ = request_->GetResponseCode();
|
| response_headers_ = request_->response_headers();
|
| response_headers_->GetMimeType(&response_content_type_);
|
| - request_->Read(buffer_.get(), kRecvBufferSize, &bytes_read);
|
| + bytes_read = request_->Read(buffer_.get(), kRecvBufferSize);
|
| }
|
| OnReadCompleted(request_.get(), bytes_read);
|
| }
|
| @@ -317,13 +318,12 @@ class OCSPRequestSession
|
| DCHECK_EQ(request_.get(), request);
|
| DCHECK_EQ(base::MessageLoopForIO::current(), io_loop_);
|
|
|
| - do {
|
| - if (!request_->status().is_success() || bytes_read <= 0)
|
| - break;
|
| + while (bytes_read > 0) {
|
| data_.append(buffer_->data(), bytes_read);
|
| - } while (request_->Read(buffer_.get(), kRecvBufferSize, &bytes_read));
|
| + bytes_read = request_->Read(buffer_.get(), kRecvBufferSize);
|
| + }
|
|
|
| - if (!request_->status().is_io_pending()) {
|
| + if (bytes_read != ERR_IO_PENDING) {
|
| request_.reset();
|
| g_ocsp_io_loop.Get().RemoveRequest(this);
|
| {
|
|
|