Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(543)

Unified Diff: remoting/protocol/jingle_messages.cc

Issue 2026123002: [Chromoting] Use google:remoting namespace to export remoting specific error codes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Resolve review comments Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/protocol/jingle_messages.cc
diff --git a/remoting/protocol/jingle_messages.cc b/remoting/protocol/jingle_messages.cc
index 3113873b01280f3e310b165bb005364e44fbaa38..959ca1d734980ecaa6698b5558a5558ac1773b3f 100644
--- a/remoting/protocol/jingle_messages.cc
+++ b/remoting/protocol/jingle_messages.cc
@@ -49,7 +49,6 @@ const NameMapElement<JingleMessage::ActionType> kActionTypes[] = {
const NameMapElement<JingleMessage::Reason> kReasons[] = {
{ JingleMessage::SUCCESS, "success" },
{ JingleMessage::DECLINE, "decline" },
- { JingleMessage::SECURITY_ERROR, "security-error" },
{ JingleMessage::CANCEL, "cancel" },
{ JingleMessage::EXPIRED, "expired" },
{ JingleMessage::GENERAL_ERROR, "general-error" },
@@ -343,6 +342,16 @@ bool JingleMessage::ParseXml(const buzz::XmlElement* stanza,
}
}
+ const XmlElement* error_code_tag =
+ jingle_tag->FirstNamed(QName(kChromotingXmlNamespace, "error-code"));
+ if (error_code_tag && !error_code_tag->BodyText().empty()) {
+ if (!ParseErrorCode(error_code_tag->BodyText(), &error_code)) {
+ LOG(WARNING) << "Unknown error-code received "
+ << error_code_tag->BodyText();
+ error_code = UNKNOWN_ERROR;
+ }
+ }
+
if (action == SESSION_TERMINATE)
return true;
@@ -360,7 +369,7 @@ bool JingleMessage::ParseXml(const buzz::XmlElement* stanza,
}
const XmlElement* webrtc_transport_tag = content_tag->FirstNamed(
- QName("google:remoting:webrtc", "transport"));
+ QName(kWebrtcTransportNamespace, "transport"));
if (webrtc_transport_tag) {
transport_info.reset(new buzz::XmlElement(*webrtc_transport_tag));
}
@@ -424,12 +433,20 @@ std::unique_ptr<buzz::XmlElement> JingleMessage::ToXml() const {
if (reason != UNKNOWN_REASON) {
XmlElement* reason_tag = new XmlElement(QName(kJingleNamespace, "reason"));
jingle_tag->AddElement(reason_tag);
- const char* reason_string =
- ValueToName(kReasons, reason);
+ const char* reason_string = ValueToName(kReasons, reason);
if (!reason_string)
LOG(FATAL) << "Invalid reason: " << reason;
reason_tag->AddElement(new XmlElement(
QName(kJingleNamespace, reason_string)));
+
+ if (error_code != UNKNOWN_ERROR) {
+ XmlElement* error_code_tag =
+ new XmlElement(QName(kChromotingXmlNamespace, "error-code"));
+ jingle_tag->AddElement(error_code_tag);
+ const char* error_code_string = ErrorCodeToString(error_code);
+ DCHECK(error_code_string);
Sergey Ulanov 2016/06/07 16:22:23 nit: don't need this. There is already NOTREACHED(
Hzj_jie 2016/06/07 19:29:57 I copied the similar logic from reason node above.
Sergey Ulanov 2016/06/07 20:17:21 I think that check for reason_string was added bef
Hzj_jie 2016/06/07 20:20:43 Yes, both have been removed in the latest iteratio
+ error_code_tag->SetBodyText(error_code_string);
+ }
}
if (action != SESSION_TERMINATE) {

Powered by Google App Engine
This is Rietveld 408576698