summaryrefslogtreecommitdiffstats
path: root/remoting/protocol/fake_session.cc
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-14 03:55:21 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-14 03:55:21 +0000
commitc712866e63b1edc683199fe31b77e6a6cf5419e4 (patch)
treeeff1e7b365fd6524a0f898d42f497bd66e0817bd /remoting/protocol/fake_session.cc
parent2318a4330ec43b18591f3704a03192c2a1166624 (diff)
downloadchromium_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.cc10
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_);