peerconnection: measure invalid ice-chars in remote description
in order to deprecate the non-spec usage BUG=chromium:1053756 Change-Id: I2588aba64a6e7ff05b39c5505504579a5f58a75f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/268380 Reviewed-by: Florent Castelli <orphis@webrtc.org> Commit-Queue: Florent Castelli <orphis@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37522}
This commit is contained in:
parent
f3c86154d4
commit
6f22eb55b3
@ -1996,6 +1996,26 @@ void PeerConnection::ReportFirstConnectUsageMetrics() {
|
||||
// Record the number of configured ICE servers for connected connections.
|
||||
RTC_HISTOGRAM_COUNTS_LINEAR("WebRTC.PeerConnection.IceServers.Connected",
|
||||
configuration_.servers.size(), 0, 31, 32);
|
||||
|
||||
// Record the number of valid / invalid ice-ufrag. We do allow certain
|
||||
// non-spec ice-char for backward-compat reasons. At this point we know
|
||||
// that the ufrag/pwd consists of a valid ice-char or one of the four
|
||||
// not allowed characters since we have passed the IsIceChar check done
|
||||
// by the p2p transport description on setRemoteDescription calls.
|
||||
auto transport_infos = remote_description()->description()->transport_infos();
|
||||
if (transport_infos.size() > 0) {
|
||||
auto ice_parameters = transport_infos[0].description.GetIceParameters();
|
||||
auto is_invalid_char = [](char c) {
|
||||
return c == '-' || c == '=' || c == '#' || c == '_';
|
||||
};
|
||||
bool isUsingInvalidIceCharInUfrag =
|
||||
absl::c_any_of(ice_parameters.ufrag, is_invalid_char);
|
||||
bool isUsingInvalidIceCharInPwd =
|
||||
absl::c_any_of(ice_parameters.pwd, is_invalid_char);
|
||||
RTC_HISTOGRAM_BOOLEAN(
|
||||
"WebRTC.PeerConnection.ValidIceChars",
|
||||
!(isUsingInvalidIceCharInUfrag || isUsingInvalidIceCharInPwd));
|
||||
}
|
||||
}
|
||||
|
||||
void PeerConnection::OnIceGatheringChange(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user