Chromium Code Reviews| Index: remoting/protocol/jingle_session.cc |
| diff --git a/remoting/protocol/jingle_session.cc b/remoting/protocol/jingle_session.cc |
| index 8a24662699779189f62a957cdc984fa73d5ab6e0..3b0bd42d6a98fa25d13d587891f997b915adef58 100644 |
| --- a/remoting/protocol/jingle_session.cc |
| +++ b/remoting/protocol/jingle_session.cc |
| @@ -240,18 +240,21 @@ void JingleSession::Close(protocol::ErrorCode error) { |
| if (is_session_active()) { |
| // Send session-terminate message with the appropriate error code. |
| JingleMessage::Reason reason; |
| + ErrorCode error_code = UNKNOWN_ERROR; |
|
Sergey Ulanov
2016/06/02 09:26:04
I think we want to set error_code for _all_ errors
Hzj_jie
2016/06/02 22:00:19
Done.
|
| switch (error) { |
| case OK: |
| reason = JingleMessage::SUCCESS; |
| break; |
| case SESSION_REJECTED: |
| + reason = JingleMessage::DECLINE; |
| + error_code = SESSION_REJECTED; |
| case AUTHENTICATION_FAILED: |
| reason = JingleMessage::DECLINE; |
| + error_code = AUTHENTICATION_FAILED; |
| break; |
| case INVALID_ACCOUNT: |
| - // TODO(zijiehe): Instead of using SECURITY_ERROR Jingle reason, add a |
| - // new tag under crd namespace to export detail error reason to client. |
| - reason = JingleMessage::SECURITY_ERROR; |
| + reason = JingleMessage::DECLINE; |
| + error_code = INVALID_ACCOUNT; |
| break; |
| case INCOMPATIBLE_PROTOCOL: |
| reason = JingleMessage::INCOMPATIBLE_PARAMETERS; |
| @@ -272,6 +275,7 @@ void JingleSession::Close(protocol::ErrorCode error) { |
| JingleMessage message(peer_address_, JingleMessage::SESSION_TERMINATE, |
| session_id_); |
| message.reason = reason; |
| + message.error_code = error_code; |
|
Sergey Ulanov
2016/06/02 09:26:04
message.error_code = error; and remove error_code
Hzj_jie
2016/06/02 22:00:19
Done.
|
| SendMessage(message); |
| } |
| @@ -481,37 +485,48 @@ void JingleSession::OnTerminate(const JingleMessage& message, |
| reply_callback.Run(JingleMessageReply::NONE); |
| - switch (message.reason) { |
| - case JingleMessage::SUCCESS: |
| - if (state_ == CONNECTING) { |
| - error_ = SESSION_REJECTED; |
| - } else { |
| - error_ = OK; |
| - } |
| + switch (message.error_code) { |
|
Sergey Ulanov
2016/06/02 09:26:04
You don't need this switch.
Just replace it with
Hzj_jie
2016/06/02 22:00:19
Done.
|
| + case SESSION_REJECTED: |
| + // For backward compatibility, we still use AUTHENTICATION_FAILED for |
| + // SESSION_REJECTED error. |
| + error_ = AUTHENTICATION_FAILED; |
| break; |
| - case JingleMessage::DECLINE: |
| + case AUTHENTICATION_FAILED: |
| error_ = AUTHENTICATION_FAILED; |
| break; |
| - case JingleMessage::SECURITY_ERROR: |
| + case INVALID_ACCOUNT: |
| error_ = INVALID_ACCOUNT; |
| break; |
| - case JingleMessage::CANCEL: |
| - error_ = HOST_OVERLOAD; |
| - break; |
| - case JingleMessage::EXPIRED: |
| - error_ = MAX_SESSION_LENGTH; |
| - break; |
| - case JingleMessage::INCOMPATIBLE_PARAMETERS: |
| - error_ = INCOMPATIBLE_PROTOCOL; |
| - break; |
| - case JingleMessage::FAILED_APPLICATION: |
| - error_ = HOST_CONFIGURATION_ERROR; |
| - break; |
| - case JingleMessage::GENERAL_ERROR: |
| - error_ = CHANNEL_CONNECTION_ERROR; |
| - break; |
| default: |
| - error_ = UNKNOWN_ERROR; |
| + switch (message.reason) { |
|
Sergey Ulanov
2016/06/02 09:26:04
switch inside a switch is hard for humans to parse
Hzj_jie
2016/06/02 22:00:19
Done.
|
| + case JingleMessage::SUCCESS: |
| + if (state_ == CONNECTING) { |
| + error_ = SESSION_REJECTED; |
| + } else { |
| + error_ = OK; |
| + } |
| + break; |
| + case JingleMessage::DECLINE: |
| + error_ = AUTHENTICATION_FAILED; |
| + break; |
| + case JingleMessage::CANCEL: |
| + error_ = HOST_OVERLOAD; |
| + break; |
| + case JingleMessage::EXPIRED: |
| + error_ = MAX_SESSION_LENGTH; |
| + break; |
| + case JingleMessage::INCOMPATIBLE_PARAMETERS: |
| + error_ = INCOMPATIBLE_PROTOCOL; |
| + break; |
| + case JingleMessage::FAILED_APPLICATION: |
| + error_ = HOST_CONFIGURATION_ERROR; |
| + break; |
| + case JingleMessage::GENERAL_ERROR: |
| + error_ = CHANNEL_CONNECTION_ERROR; |
| + break; |
| + default: |
| + error_ = UNKNOWN_ERROR; |
| + } |
| } |
| if (error_ != OK) { |