Chromium Code Reviews| Index: remoting/protocol/jingle_session.cc |
| diff --git a/remoting/protocol/jingle_session.cc b/remoting/protocol/jingle_session.cc |
| index 40f06579db13724e9c3b0da708ee6c4b63c4c98b..2c02eb6021ce4a68b4b373e30be5e0429d69dd15 100644 |
| --- a/remoting/protocol/jingle_session.cc |
| +++ b/remoting/protocol/jingle_session.cc |
| @@ -45,6 +45,8 @@ JingleSession::JingleSession( |
| jid_ = cricket_session_->remote_name(); |
| cricket_session_->SignalState.connect(this, &JingleSession::OnSessionState); |
| cricket_session_->SignalError.connect(this, &JingleSession::OnSessionError); |
| + cricket_session_->SignalReceivedTerminateReason.connect( |
| + this, &JingleSession::OnTerminateReason); |
| } |
| JingleSession::~JingleSession() { |
| @@ -244,6 +246,12 @@ void JingleSession::OnSessionError( |
| } |
| } |
| +void JingleSession::OnTerminateReason(cricket::Session* session, |
| + const std::string& reason) { |
| + terminate_reason_ = reason; |
| +} |
| + |
| + |
| void JingleSession::OnInitiate() { |
| DCHECK(CalledOnValidThread()); |
| jid_ = cricket_session_->remote_name(); |
| @@ -332,7 +340,14 @@ void JingleSession::OnAccept() { |
| void JingleSession::OnTerminate() { |
| DCHECK(CalledOnValidThread()); |
| - CloseInternal(net::ERR_CONNECTION_ABORTED, OK); |
| + |
| + if (terminate_reason_ == "decline") { |
| + CloseInternal(net::ERR_CONNECTION_ABORTED, AUTHENTICATION_FAILED); |
| + } else if (terminate_reason_ == "incompatible-protocol") { |
| + CloseInternal(net::ERR_CONNECTION_ABORTED, INCOMPATIBLE_PROTOCOL); |
| + } else { |
| + CloseInternal(net::ERR_CONNECTION_ABORTED, OK); |
|
Wez
2011/12/13 00:12:38
This looks like a fix to JingleSession, presumably
Sergey Ulanov
2011/12/13 02:31:55
Done.
|
| + } |
| } |
| void JingleSession::AcceptConnection() { |