summaryrefslogtreecommitdiffstats
path: root/remoting/protocol/jingle_session_manager.cc
diff options
context:
space:
mode:
authorhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-23 18:48:36 +0000
committerhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-23 18:48:36 +0000
commitf4ae0ed7eedbb35d59376c300a6147da2b41c2b7 (patch)
tree71142f08e29e7d4c1799ff6af4f74c3e799446a5 /remoting/protocol/jingle_session_manager.cc
parent59ba0142d4219a4ac6c5e3b463a1d5f923e0b568 (diff)
downloadchromium_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.cc7
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);
}