Add pruneTurnPorts to the IOS RTCConfiguration.
BUG=
R=pthatcher@webrtc.org
TBR=tkchin@webrt.org
Review URL: https://codereview.webrtc.org/2120553002 .
Cr-Commit-Position: refs/heads/master@{#13368}
diff --git a/webrtc/sdk/objc/Framework/Classes/RTCConfiguration.mm b/webrtc/sdk/objc/Framework/Classes/RTCConfiguration.mm
index 2a11f2d..74b5c5d 100644
--- a/webrtc/sdk/objc/Framework/Classes/RTCConfiguration.mm
+++ b/webrtc/sdk/objc/Framework/Classes/RTCConfiguration.mm
@@ -33,6 +33,7 @@
_iceBackupCandidatePairPingInterval;
@synthesize keyType = _keyType;
@synthesize iceCandidatePoolSize = _iceCandidatePoolSize;
+@synthesize pruneTurnPorts = _pruneTurnPorts;
@synthesize presumeWritableWhenFullyRelayed = _presumeWritableWhenFullyRelayed;
- (instancetype)init {
@@ -60,6 +61,7 @@
config.ice_backup_candidate_pair_ping_interval;
_keyType = RTCEncryptionKeyTypeECDSA;
_iceCandidatePoolSize = config.ice_candidate_pool_size;
+ _pruneTurnPorts = config.prune_turn_ports;
_presumeWritableWhenFullyRelayed =
config.presume_writable_when_fully_relayed;
}
@@ -68,7 +70,7 @@
- (NSString *)description {
return [NSString stringWithFormat:
- @"RTCConfiguration: {\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%d\n%d\n%d\n%d\n%d\n}\n",
+ @"RTCConfiguration: {\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%d\n%d\n%d\n%d\n%d\n%d\n}\n",
_iceServers,
[[self class] stringForTransportPolicy:_iceTransportPolicy],
[[self class] stringForBundlePolicy:_bundlePolicy],
@@ -81,6 +83,7 @@
_iceConnectionReceivingTimeout,
_iceBackupCandidatePairPingInterval,
_iceCandidatePoolSize,
+ _pruneTurnPorts,
_presumeWritableWhenFullyRelayed];
}
@@ -125,6 +128,7 @@
nativeConfig->certificates.push_back(certificate);
}
nativeConfig->ice_candidate_pool_size = _iceCandidatePoolSize;
+ nativeConfig->prune_turn_ports = _pruneTurnPorts;
nativeConfig->presume_writable_when_fully_relayed =
_presumeWritableWhenFullyRelayed;
diff --git a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h
index 04cf9fc..fcd2244 100644
--- a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h
+++ b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h
@@ -93,6 +93,9 @@
/** ICE candidate pool size as defined in JSEP. Default is 0. */
@property(nonatomic, assign) int iceCandidatePoolSize;
+/** Prune turn ports on the same network to the same turn server. Default is false. */
+@property(nonatomic, assign) bool pruneTurnPorts;
+
/** If set to true, this means the ICE transport should presume TURN-to-TURN
* candidate pairs will succeed, even before a binding response is received.
*/
diff --git a/webrtc/sdk/objc/Framework/UnitTests/RTCConfigurationTest.mm b/webrtc/sdk/objc/Framework/UnitTests/RTCConfigurationTest.mm
index cd271f4..51591f4 100644
--- a/webrtc/sdk/objc/Framework/UnitTests/RTCConfigurationTest.mm
+++ b/webrtc/sdk/objc/Framework/UnitTests/RTCConfigurationTest.mm
@@ -44,6 +44,7 @@
config.iceBackupCandidatePairPingInterval = interval;
config.continualGatheringPolicy =
RTCContinualGatheringPolicyGatherContinually;
+ config.pruneTurnPorts = true;
std::unique_ptr<webrtc::PeerConnectionInterface::RTCConfiguration>
nativeConfig([config createNativeConfiguration]);
@@ -68,6 +69,7 @@
EXPECT_EQ(interval, nativeConfig->ice_backup_candidate_pair_ping_interval);
EXPECT_EQ(webrtc::PeerConnectionInterface::GATHER_CONTINUALLY,
nativeConfig->continual_gathering_policy);
+ EXPECT_EQ(true, nativeConfig->prune_turn_ports);
}
@end