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

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

Issue 7312013: Minor cleanups in JingleSession and JingleSessionManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address comments. Created 9 years, 5 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/jingle_session.h" 5 #include "remoting/protocol/jingle_session.h"
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/rand_util.h" 8 #include "base/rand_util.h"
9 #include "crypto/hmac.h" 9 #include "crypto/hmac.h"
10 #include "crypto/rsa_private_key.h" 10 #include "crypto/rsa_private_key.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 if (local_private_key) { 152 if (local_private_key) {
153 std::vector<uint8> key_bytes; 153 std::vector<uint8> key_bytes;
154 CHECK(local_private_key->ExportPrivateKey(&key_bytes)); 154 CHECK(local_private_key->ExportPrivateKey(&key_bytes));
155 local_private_key_.reset( 155 local_private_key_.reset(
156 crypto::RSAPrivateKey::CreateFromPrivateKeyInfo(key_bytes)); 156 crypto::RSAPrivateKey::CreateFromPrivateKeyInfo(key_bytes));
157 CHECK(local_private_key_.get()); 157 CHECK(local_private_key_.get());
158 } 158 }
159 } 159 }
160 160
161 JingleSession::~JingleSession() { 161 JingleSession::~JingleSession() {
162 DCHECK(closed_); 162 // Reset the callback so that it's not called from Close().
163 state_change_callback_.reset();
164 Close();
163 jingle_session_manager_->SessionDestroyed(this); 165 jingle_session_manager_->SessionDestroyed(this);
164 } 166 }
165 167
166 void JingleSession::Init(cricket::Session* cricket_session) { 168 void JingleSession::Init(cricket::Session* cricket_session) {
167 DCHECK(CalledOnValidThread()); 169 DCHECK(CalledOnValidThread());
168 170
169 cricket_session_ = cricket_session; 171 cricket_session_ = cricket_session;
170 jid_ = cricket_session_->remote_name(); 172 jid_ = cricket_session_->remote_name();
171 cert_verifier_.reset(new net::CertVerifier()); 173 cert_verifier_.reset(new net::CertVerifier());
172 cricket_session_->SignalState.connect( 174 cricket_session_->SignalState.connect(
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 new jingle_glue::TransportChannelSocketAdapter(raw_event_channel_)); 442 new jingle_glue::TransportChannelSocketAdapter(raw_event_channel_));
441 443
442 // Create video channel. 444 // Create video channel.
443 // TODO(wez): When we have RTP video support, we'll need to negotiate the 445 // TODO(wez): When we have RTP video support, we'll need to negotiate the
444 // type of video channel to allocate, for legacy compatibility. 446 // type of video channel to allocate, for legacy compatibility.
445 raw_video_channel_ = 447 raw_video_channel_ =
446 cricket_session_->CreateChannel(content_name, kVideoChannelName); 448 cricket_session_->CreateChannel(content_name, kVideoChannelName);
447 video_channel_.reset( 449 video_channel_.reset(
448 new jingle_glue::TransportChannelSocketAdapter(raw_video_channel_)); 450 new jingle_glue::TransportChannelSocketAdapter(raw_video_channel_));
449 451
450 if (!cricket_session_->initiator()) 452 if (!cricket_session_->initiator()) {
451 jingle_session_manager_->AcceptConnection(this, cricket_session_); 453 if (!jingle_session_manager_->AcceptConnection(this, cricket_session_)) {
454 Close();
455 // Release session so that
456 // JingleSessionManager::SessionDestroyed() doesn't try to call
457 // cricket::SessionManager::DestroySession() for it.
458 ReleaseSession();
459 delete this;
460 return;
461 }
462 }
452 463
453 if (!closed_) { 464 // Set state to CONNECTING if the session is being accepted.
454 // Set state to CONNECTING if the session is being accepted. 465 SetState(CONNECTING);
455 SetState(CONNECTING);
456 }
457 } 466 }
458 467
459 bool JingleSession::EstablishPseudoTcp( 468 bool JingleSession::EstablishPseudoTcp(
460 net::Socket* channel, 469 net::Socket* channel,
461 scoped_ptr<net::StreamSocket>* stream) { 470 scoped_ptr<net::StreamSocket>* stream) {
462 jingle_glue::PseudoTcpAdapter* adapter = 471 jingle_glue::PseudoTcpAdapter* adapter =
463 new jingle_glue::PseudoTcpAdapter(channel); 472 new jingle_glue::PseudoTcpAdapter(channel);
464 adapter->SetAckDelay(kTcpAckDelayMilliseconds); 473 adapter->SetAckDelay(kTcpAckDelayMilliseconds);
465 adapter->SetNoDelay(true); 474 adapter->SetNoDelay(true);
466 475
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 676
668 state_ = new_state; 677 state_ = new_state;
669 if (!closed_ && state_change_callback_.get()) 678 if (!closed_ && state_change_callback_.get())
670 state_change_callback_->Run(new_state); 679 state_change_callback_->Run(new_state);
671 } 680 }
672 } 681 }
673 682
674 } // namespace protocol 683 } // namespace protocol
675 684
676 } // namespace remoting 685 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698