Chromium Code Reviews| Index: remoting/protocol/pepper_session.cc |
| diff --git a/remoting/protocol/pepper_session.cc b/remoting/protocol/pepper_session.cc |
| index ce56fd51432557c6e1cc472cffbb93f8477bee96..38431035856411df6990704247f118d77fe683e8 100644 |
| --- a/remoting/protocol/pepper_session.cc |
| +++ b/remoting/protocol/pepper_session.cc |
| @@ -38,8 +38,6 @@ PepperSession::PepperSession(PepperSessionManager* session_manager) |
| } |
| PepperSession::~PepperSession() { |
| - control_channel_socket_.reset(); |
| - event_channel_socket_.reset(); |
| STLDeleteContainerPairSecondPointers(channels_.begin(), channels_.end()); |
| session_manager_->SessionDestroyed(this); |
| } |
| @@ -134,16 +132,6 @@ void PepperSession::CancelChannelCreation(const std::string& name) { |
| } |
| } |
| -net::Socket* PepperSession::control_channel() { |
| - DCHECK(CalledOnValidThread()); |
| - return control_channel_socket_.get(); |
| -} |
| - |
| -net::Socket* PepperSession::event_channel() { |
| - DCHECK(CalledOnValidThread()); |
| - return event_channel_socket_.get(); |
| -} |
| - |
| const std::string& PepperSession::jid() { |
| DCHECK(CalledOnValidThread()); |
| return peer_jid_; |
| @@ -199,8 +187,7 @@ const std::string& PepperSession::shared_secret() { |
| void PepperSession::Close() { |
| DCHECK(CalledOnValidThread()); |
| - if (state_ == CONNECTING || state_ == CONNECTED || |
| - state_ == CONNECTED_CHANNELS) { |
| + if (state_ == CONNECTING || state_ == CONNECTED) { |
| // Send session-terminate message. |
| JingleMessage message(peer_jid_, JingleMessage::SESSION_TERMINATE, |
| session_id_); |
| @@ -252,7 +239,6 @@ void PepperSession::OnAccept(const JingleMessage& message, |
| return; |
| } |
| - CreateChannels(); |
| SetState(CONNECTED); |
| // In case there is transport information in the accept message. |
| @@ -292,16 +278,16 @@ void PepperSession::OnTerminate(const JingleMessage& message, |
| return; |
| } |
| - // TODO(sergeyu): We should return CHANNEL_CONNECTION_ERROR only in |
| - // case when |message.reason| is set GENERAL_ERROR, but some legacy |
| - // hosts may sent terminate messages with reason set to SUCCESS. |
| if (state_ == CONNECTED) { |
| - // Session was connected, but we failed to connect channels. |
| - OnError(CHANNEL_CONNECTION_ERROR); |
| + if (message.reason == JingleMessage::GENERAL_ERROR) { |
| + OnError(CHANNEL_CONNECTION_ERROR); |
| + } else { |
| + CloseInternal(false); |
| + } |
| return; |
| } |
| - CloseInternal(false); |
| + LOG(ERROR) << "Received unexpected session-terminate message."; |
|
Wez
2011/11/21 02:39:04
Is that really an error?
Sergey Ulanov
2011/11/21 22:14:22
Changed to WARNING.
|
| } |
| bool PepperSession::InitializeConfigFromDescription( |
| @@ -369,40 +355,11 @@ void PepperSession::SendTransportInfo() { |
| base::Unretained(this)))); |
| } |
| -void PepperSession::CreateChannels() { |
| - CreateStreamChannel( |
| - kControlChannelName, |
| - base::Bind(&PepperSession::OnChannelConnected, |
| - base::Unretained(this), &control_channel_socket_)); |
| - CreateStreamChannel( |
| - kEventChannelName, |
| - base::Bind(&PepperSession::OnChannelConnected, |
| - base::Unretained(this), &event_channel_socket_)); |
| -} |
| - |
| -void PepperSession::OnChannelConnected( |
| - scoped_ptr<net::Socket>* socket_container, |
| - net::StreamSocket* socket) { |
| - if (!socket) { |
| - LOG(ERROR) << "Failed to connect control or events channel. " |
| - << "Terminating connection"; |
| - OnError(CHANNEL_CONNECTION_ERROR); |
| - return; |
| - } |
| - |
| - socket_container->reset(socket); |
| - |
| - if (control_channel_socket_.get() && event_channel_socket_.get()) |
| - SetState(CONNECTED_CHANNELS); |
| -} |
| void PepperSession::CloseInternal(bool failed) { |
| DCHECK(CalledOnValidThread()); |
| if (state_ != FAILED && state_ != CLOSED) { |
| - control_channel_socket_.reset(); |
| - event_channel_socket_.reset(); |
| - |
| if (failed) |
| SetState(FAILED); |
| else |