Add a turn port prune policy to keep the first ready turn port.

Bug: webrtc:11026
Change-Id: I6222e9613ee4ce2dcfbb717e2430ea833c0dc373
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155542
Commit-Queue: Honghai Zhang <honghaiz@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29470}
This commit is contained in:
Honghai Zhang
2019-10-14 11:27:50 -07:00
committed by Commit Bot
parent ef98ae6bbb
commit f8998cf8c4
19 changed files with 257 additions and 81 deletions

View File

@ -194,6 +194,25 @@ JavaToNativeContinualGatheringPolicy(
return PeerConnectionInterface::GATHER_ONCE;
}
webrtc::PortPrunePolicy JavaToNativePortPrunePolicy(
JNIEnv* jni,
const JavaRef<jobject>& j_port_prune_policy) {
std::string enum_name = GetJavaEnumName(jni, j_port_prune_policy);
if (enum_name == "NO_PRUNE") {
return webrtc::NO_PRUNE;
}
if (enum_name == "PRUNE_BASED_ON_PRIORITY") {
return webrtc::PRUNE_BASED_ON_PRIORITY;
}
if (enum_name == "KEEP_FIRST_READY") {
return webrtc::KEEP_FIRST_READY;
}
RTC_CHECK(false) << " Unexpected PortPrunePolicy enum name " << enum_name;
return webrtc::NO_PRUNE;
}
PeerConnectionInterface::TlsCertPolicy JavaToNativeTlsCertPolicy(
JNIEnv* jni,
const JavaRef<jobject>& j_ice_server_tls_cert_policy) {

View File

@ -71,6 +71,10 @@ JavaToNativeContinualGatheringPolicy(
JNIEnv* jni,
const JavaRef<jobject>& j_gathering_policy);
webrtc::PortPrunePolicy JavaToNativePortPrunePolicy(
JNIEnv* jni,
const JavaRef<jobject>& j_port_prune_policy);
PeerConnectionInterface::TlsCertPolicy JavaToNativeTlsCertPolicy(
JNIEnv* jni,
const JavaRef<jobject>& j_ice_server_tls_cert_policy);

View File

@ -158,6 +158,8 @@ void JavaToNativeRTCConfiguration(
Java_RTCConfiguration_getIceServers(jni, j_rtc_config);
ScopedJavaLocalRef<jobject> j_continual_gathering_policy =
Java_RTCConfiguration_getContinualGatheringPolicy(jni, j_rtc_config);
ScopedJavaLocalRef<jobject> j_turn_port_prune_policy =
Java_RTCConfiguration_getTurnPortPrunePolicy(jni, j_rtc_config);
ScopedJavaLocalRef<jobject> j_turn_customizer =
Java_RTCConfiguration_getTurnCustomizer(jni, j_rtc_config);
ScopedJavaLocalRef<jobject> j_network_preference =
@ -199,6 +201,8 @@ void JavaToNativeRTCConfiguration(
Java_RTCConfiguration_getIceCandidatePoolSize(jni, j_rtc_config);
rtc_config->prune_turn_ports =
Java_RTCConfiguration_getPruneTurnPorts(jni, j_rtc_config);
rtc_config->turn_port_prune_policy =
JavaToNativePortPrunePolicy(jni, j_turn_port_prune_policy);
rtc_config->presume_writable_when_fully_relayed =
Java_RTCConfiguration_getPresumeWritableWhenFullyRelayed(jni,
j_rtc_config);