| Index: remoting/protocol/message_reader.cc
|
| diff --git a/remoting/protocol/message_reader.cc b/remoting/protocol/message_reader.cc
|
| index 02dc99792626db5dba362f006509267d696a769b..441d7295b1dc4340fe5a8e5e17b388a52a87c41f 100644
|
| --- a/remoting/protocol/message_reader.cc
|
| +++ b/remoting/protocol/message_reader.cc
|
| @@ -66,14 +66,14 @@ void MessageReader::HandleReadResult(int result) {
|
|
|
| if (result > 0) {
|
| OnDataReceived(read_buffer_, result);
|
| + } else if (result == net::ERR_IO_PENDING) {
|
| + read_pending_ = true;
|
| } else {
|
| - if (result == net::ERR_CONNECTION_CLOSED) {
|
| - closed_ = true;
|
| - } else if (result == net::ERR_IO_PENDING) {
|
| - read_pending_ = true;
|
| - } else {
|
| + if (result != net::ERR_CONNECTION_CLOSED) {
|
| LOG(ERROR) << "Read() returned error " << result;
|
| }
|
| + // Stop reading after any error.
|
| + closed_ = true;
|
| }
|
| }
|
|
|
| @@ -115,7 +115,8 @@ void MessageReader::ProcessDoneEvent() {
|
| pending_messages_--;
|
| DCHECK_GE(pending_messages_, 0);
|
|
|
| - DoRead(); // Start next read if neccessary.
|
| + if (!read_pending_)
|
| + DoRead(); // Start next read if neccessary.
|
| }
|
|
|
| } // namespace protocol
|
|
|