Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: remoting/protocol/connection_to_host.cc

Issue 14308012: Fixed missing CONNECTED state transition. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/protocol/connection_to_host.h" 5 #include "remoting/protocol/connection_to_host.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "remoting/base/constants.h" 10 #include "remoting/base/constants.h"
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 159
160 switch (state) { 160 switch (state) {
161 case Session::INITIALIZING: 161 case Session::INITIALIZING:
162 case Session::CONNECTING: 162 case Session::CONNECTING:
163 case Session::ACCEPTING: 163 case Session::ACCEPTING:
164 case Session::CONNECTED: 164 case Session::CONNECTED:
165 // Don't care about these events. 165 // Don't care about these events.
166 break; 166 break;
167 167
168 case Session::AUTHENTICATED: 168 case Session::AUTHENTICATED:
169 SetState(AUTHENTICATED, OK);
170
169 control_dispatcher_.reset(new ClientControlDispatcher()); 171 control_dispatcher_.reset(new ClientControlDispatcher());
170 control_dispatcher_->Init( 172 control_dispatcher_->Init(
171 session_.get(), session_->config().control_config(), 173 session_.get(), session_->config().control_config(),
172 base::Bind(&ConnectionToHost::OnChannelInitialized, 174 base::Bind(&ConnectionToHost::OnChannelInitialized,
173 base::Unretained(this))); 175 base::Unretained(this)));
174 control_dispatcher_->set_client_stub(client_stub_); 176 control_dispatcher_->set_client_stub(client_stub_);
175 control_dispatcher_->set_clipboard_stub(clipboard_stub_); 177 control_dispatcher_->set_clipboard_stub(clipboard_stub_);
176 178
177 event_dispatcher_.reset(new ClientEventDispatcher()); 179 event_dispatcher_.reset(new ClientEventDispatcher());
178 event_dispatcher_->Init( 180 event_dispatcher_->Init(
179 session_.get(), session_->config().event_config(), 181 session_.get(), session_->config().event_config(),
180 base::Bind(&ConnectionToHost::OnChannelInitialized, 182 base::Bind(&ConnectionToHost::OnChannelInitialized,
181 base::Unretained(this))); 183 base::Unretained(this)));
182 184
183 video_reader_ = VideoReader::Create(session_->config()); 185 video_reader_ = VideoReader::Create(session_->config());
184 video_reader_->Init(session_.get(), video_stub_, base::Bind( 186 video_reader_->Init(session_.get(), video_stub_, base::Bind(
185 &ConnectionToHost::OnChannelInitialized, base::Unretained(this))); 187 &ConnectionToHost::OnChannelInitialized, base::Unretained(this)));
186 188
187 audio_reader_ = AudioReader::Create(session_->config()); 189 audio_reader_ = AudioReader::Create(session_->config());
188 if (audio_reader_.get()) { 190 if (audio_reader_.get()) {
189 audio_reader_->Init( 191 audio_reader_->Init(
190 session_.get(), session_->config().audio_config(), 192 session_.get(), session_->config().audio_config(),
191 base::Bind(&ConnectionToHost::OnChannelInitialized, 193 base::Bind(&ConnectionToHost::OnChannelInitialized,
192 base::Unretained(this))); 194 base::Unretained(this)));
193 audio_reader_->set_audio_stub(audio_stub_); 195 audio_reader_->set_audio_stub(audio_stub_);
194 } 196 }
195
196 SetState(AUTHENTICATED, OK);
197 break; 197 break;
198 198
199 case Session::CLOSED: 199 case Session::CLOSED:
200 CloseChannels(); 200 CloseChannels();
201 SetState(CLOSED, OK); 201 SetState(CLOSED, OK);
202 break; 202 break;
203 203
204 case Session::FAILED: 204 case Session::FAILED:
205 // If we were connected then treat signaling timeout error as if 205 // If we were connected then treat signaling timeout error as if
206 // the connection was closed by the peer. 206 // the connection was closed by the peer.
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 if (!control_dispatcher_.get() || !control_dispatcher_->is_connected()) 253 if (!control_dispatcher_.get() || !control_dispatcher_->is_connected())
254 return; 254 return;
255 if (!event_dispatcher_.get() || !event_dispatcher_->is_connected()) 255 if (!event_dispatcher_.get() || !event_dispatcher_->is_connected())
256 return; 256 return;
257 if (!video_reader_.get() || !video_reader_->is_connected()) 257 if (!video_reader_.get() || !video_reader_->is_connected())
258 return; 258 return;
259 if ((!audio_reader_.get() || !audio_reader_->is_connected()) && 259 if ((!audio_reader_.get() || !audio_reader_->is_connected()) &&
260 session_->config().is_audio_enabled()) { 260 session_->config().is_audio_enabled()) {
261 return; 261 return;
262 } 262 }
263 if (state_ != CONNECTING) 263 if (state_ != AUTHENTICATED)
264 return; 264 return;
265 265
266 // Start forwarding clipboard and input events. 266 // Start forwarding clipboard and input events.
267 clipboard_forwarder_.set_clipboard_stub(control_dispatcher_.get()); 267 clipboard_forwarder_.set_clipboard_stub(control_dispatcher_.get());
268 event_forwarder_.set_input_stub(event_dispatcher_.get()); 268 event_forwarder_.set_input_stub(event_dispatcher_.get());
269 SetState(CONNECTED, OK); 269 SetState(CONNECTED, OK);
270 } 270 }
271 271
272 void ConnectionToHost::CloseOnError(ErrorCode error) { 272 void ConnectionToHost::CloseOnError(ErrorCode error) {
273 CloseChannels(); 273 CloseChannels();
(...skipping 16 matching lines...) Expand all
290 290
291 if (state != state_) { 291 if (state != state_) {
292 state_ = state; 292 state_ = state;
293 error_ = error; 293 error_ = error;
294 event_callback_->OnConnectionState(state_, error_); 294 event_callback_->OnConnectionState(state_, error_);
295 } 295 }
296 } 296 }
297 297
298 } // namespace protocol 298 } // namespace protocol
299 } // namespace remoting 299 } // namespace remoting
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698