Index: talk/app/webrtc/webrtcsdp.cc |
diff --git a/talk/app/webrtc/webrtcsdp.cc b/talk/app/webrtc/webrtcsdp.cc |
index f5fb7f78e3334edd7f320d6f3e89f49b25132c4f..70bde6c24220002d9f99c639a46b9641e171d5f8 100644 |
--- a/talk/app/webrtc/webrtcsdp.cc |
+++ b/talk/app/webrtc/webrtcsdp.cc |
@@ -169,8 +169,7 @@ static const char kValueConference[] = "conference"; |
// Candidate |
static const char kCandidateHost[] = "host"; |
static const char kCandidateSrflx[] = "srflx"; |
-// TODO: How to map the prflx with circket candidate type |
-// static const char kCandidatePrflx[] = "prflx"; |
+static const char kCandidatePrflx[] = "prflx"; |
static const char kCandidateRelay[] = "relay"; |
static const char kTcpCandidateType[] = "tcptype"; |
@@ -1029,6 +1028,8 @@ bool ParseCandidate(const std::string& message, Candidate* candidate, |
candidate_type = cricket::STUN_PORT_TYPE; |
} else if (type == kCandidateRelay) { |
candidate_type = cricket::RELAY_PORT_TYPE; |
+ } else if (type == kCandidatePrflx) { |
+ candidate_type = cricket::PRFLX_PORT_TYPE; |
} else { |
return ParseFailed(first_line, "Unsupported candidate type.", error); |
} |
@@ -1741,6 +1742,11 @@ void BuildCandidate(const std::vector<Candidate>& candidates, |
type = kCandidateSrflx; |
} else if (it->type() == cricket::RELAY_PORT_TYPE) { |
type = kCandidateRelay; |
+ } else if (it->type() == cricket::PRFLX_PORT_TYPE) { |
+ type = kCandidatePrflx; |
+ // Peer reflexive candidate should only be signaled with priority 0 for |
+ // being removed. |
+ ASSERT(it->priority() == 0); |
} else { |
ASSERT(false); |
// Never write out candidates if we don't know the type. |