From e2e35ca55df0d69bbe4a6df98dc7df9b3f3166db Mon Sep 17 00:00:00 2001 From: Honghai Zhang Date: Fri, 1 Jul 2016 14:22:17 -0700 Subject: [PATCH] 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} --- webrtc/sdk/objc/Framework/Classes/RTCConfiguration.mm | 6 +++++- webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h | 3 +++ webrtc/sdk/objc/Framework/UnitTests/RTCConfigurationTest.mm | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/webrtc/sdk/objc/Framework/Classes/RTCConfiguration.mm b/webrtc/sdk/objc/Framework/Classes/RTCConfiguration.mm index 2a11f2d316..74b5c5df83 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 04cf9fc15e..fcd2244cb1 100644 --- a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h +++ b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h @@ -93,6 +93,9 @@ RTC_EXPORT /** 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 cd271f41fd..51591f4c73 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 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