diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-14 03:55:21 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-14 03:55:21 +0000 |
commit | c712866e63b1edc683199fe31b77e6a6cf5419e4 (patch) | |
tree | eff1e7b365fd6524a0f898d42f497bd66e0817bd /remoting/protocol/fake_session.cc | |
parent | 2318a4330ec43b18591f3704a03192c2a1166624 (diff) | |
download | chromium_src-c712866e63b1edc683199fe31b77e6a6cf5419e4.zip chromium_src-c712866e63b1edc683199fe31b77e6a6cf5419e4.tar.gz chromium_src-c712866e63b1edc683199fe31b77e6a6cf5419e4.tar.bz2 |
Fix MessageReader to handle errors properly.
BUG=136935
Review URL: https://chromiumcodereview.appspot.com/10703159
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146719 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/protocol/fake_session.cc')
-rw-r--r-- | remoting/protocol/fake_session.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/remoting/protocol/fake_session.cc b/remoting/protocol/fake_session.cc index a6a3aca..de6f7cf 100644 --- a/remoting/protocol/fake_session.cc +++ b/remoting/protocol/fake_session.cc @@ -18,7 +18,8 @@ namespace protocol { const char kTestJid[] = "host1@gmail.com/chromoting123"; FakeSocket::FakeSocket() - : read_pending_(false), + : next_read_error_(net::OK), + read_pending_(false), read_buffer_size_(0), input_pos_(0), message_loop_(MessageLoop::current()), @@ -55,6 +56,13 @@ void FakeSocket::PairWith(FakeSocket* peer_socket) { int FakeSocket::Read(net::IOBuffer* buf, int buf_len, const net::CompletionCallback& callback) { EXPECT_EQ(message_loop_, MessageLoop::current()); + + if (next_read_error_ != net::OK) { + int r = next_read_error_; + next_read_error_ = net::OK; + return r; + } + if (input_pos_ < static_cast<int>(input_data_.size())) { int result = std::min(buf_len, static_cast<int>(input_data_.size()) - input_pos_); |