diff options
author | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-23 18:48:36 +0000 |
---|---|---|
committer | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-23 18:48:36 +0000 |
commit | f4ae0ed7eedbb35d59376c300a6147da2b41c2b7 (patch) | |
tree | 71142f08e29e7d4c1799ff6af4f74c3e799446a5 /remoting/protocol/jingle_session_manager.cc | |
parent | 59ba0142d4219a4ac6c5e3b463a1d5f923e0b568 (diff) | |
download | chromium_src-f4ae0ed7eedbb35d59376c300a6147da2b41c2b7.zip chromium_src-f4ae0ed7eedbb35d59376c300a6147da2b41c2b7.tar.gz chromium_src-f4ae0ed7eedbb35d59376c300a6147da2b41c2b7.tar.bz2 |
Add an extra SSL layer in JingleSession for Chromoting
Wrap the existing StreamSocketAdpaters in JingleSession with an extra of
SSLClientSocket and SSLServerSocket. Since the server certificate is
self-signed, SSLClientSocket will refuse to connect. An additional patch is
needed to transmit the certificate via other channels so client sSL socket can
accept this untrusted certificate.
BUG=None
TEST=remoting_unittests
Review URL: http://codereview.chromium.org/5675003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70074 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/protocol/jingle_session_manager.cc')
-rw-r--r-- | remoting/protocol/jingle_session_manager.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/remoting/protocol/jingle_session_manager.cc b/remoting/protocol/jingle_session_manager.cc index 12f9298..dbaed17 100644 --- a/remoting/protocol/jingle_session_manager.cc +++ b/remoting/protocol/jingle_session_manager.cc @@ -210,6 +210,7 @@ void JingleSessionManager::Close(Task* closed_task) { closed_ = true; } + key_.reset(); closed_task->Run(); delete closed_task; } @@ -224,7 +225,8 @@ scoped_refptr<protocol::Session> JingleSessionManager::Connect( CandidateSessionConfig* candidate_config, protocol::Session::StateChangeCallback* state_change_callback) { // Can be called from any thread. - scoped_refptr<JingleSession> jingle_session(new JingleSession(this)); + scoped_refptr<JingleSession> jingle_session( + JingleSession::CreateClientSession(this, server_cert_)); jingle_session->set_candidate_config(candidate_config); jingle_session->set_receiver_token(receiver_token); message_loop()->PostTask( @@ -272,7 +274,8 @@ void JingleSessionManager::OnSessionCreate( // If this is an outcoming session the connection object is already // created. if (incoming) { - JingleSession* jingle_session = new JingleSession(this); + JingleSession* jingle_session = + JingleSession::CreateServerSession(this, server_cert_, key_.get()); sessions_.push_back(make_scoped_refptr(jingle_session)); jingle_session->Init(cricket_session); } |