Index: remoting/protocol/pepper_session.cc |
diff --git a/remoting/protocol/pepper_session.cc b/remoting/protocol/pepper_session.cc |
index cb039deb19821f5c1dc280e928a9d707503cf0fc..373bfc3009df75270b767d07ede7b656e2d6bec3 100644 |
--- a/remoting/protocol/pepper_session.cc |
+++ b/remoting/protocol/pepper_session.cc |
@@ -284,6 +284,15 @@ 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); |
+ return; |
+ } |
+ |
CloseInternal(false); |
} |