From 2059bb3e4bd8a7040705dd8d12815621bcd3c874 Mon Sep 17 00:00:00 2001 From: deadbeef Date: Wed, 26 Jul 2017 18:25:43 -0700 Subject: [PATCH] Adding Obj-C binding for RTCConfiguration::max_ipv6_networks. BUG=webrtc:7703 Review-Url: https://codereview.webrtc.org/2988553004 Cr-Commit-Position: refs/heads/master@{#19162} --- .../PeerConnection/RTCConfiguration.mm | 43 +++++++++++-------- .../Headers/WebRTC/RTCConfiguration.h | 9 ++++ 2 files changed, 33 insertions(+), 19 deletions(-) diff --git a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCConfiguration.mm b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCConfiguration.mm index 24fcdeff38..a71c571eee 100644 --- a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCConfiguration.mm +++ b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCConfiguration.mm @@ -28,6 +28,7 @@ @synthesize tcpCandidatePolicy = _tcpCandidatePolicy; @synthesize candidateNetworkPolicy = _candidateNetworkPolicy; @synthesize continualGatheringPolicy = _continualGatheringPolicy; +@synthesize maxIPv6Networks = _maxIPv6Networks; @synthesize audioJitterBufferMaxPackets = _audioJitterBufferMaxPackets; @synthesize audioJitterBufferFastAccelerate = _audioJitterBufferFastAccelerate; @synthesize iceConnectionReceivingTimeout = _iceConnectionReceivingTimeout; @@ -71,6 +72,7 @@ config.continual_gathering_policy; _continualGatheringPolicy = [[self class] continualGatheringPolicyForNativePolicy:nativePolicy]; + _maxIPv6Networks = config.max_ipv6_networks; _audioJitterBufferMaxPackets = config.audio_jitter_buffer_max_packets; _audioJitterBufferFastAccelerate = config.audio_jitter_buffer_fast_accelerate; _iceConnectionReceivingTimeout = config.ice_connection_receiving_timeout; @@ -95,25 +97,27 @@ } - (NSString *)description { - return [NSString stringWithFormat: - @"RTCConfiguration: {\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%@\n%@\n}\n", - _iceServers, - [[self class] stringForTransportPolicy:_iceTransportPolicy], - [[self class] stringForBundlePolicy:_bundlePolicy], - [[self class] stringForRtcpMuxPolicy:_rtcpMuxPolicy], - [[self class] stringForTcpCandidatePolicy:_tcpCandidatePolicy], - [[self class] stringForCandidateNetworkPolicy:_candidateNetworkPolicy], - [[self class] - stringForContinualGatheringPolicy:_continualGatheringPolicy], - _audioJitterBufferMaxPackets, - _audioJitterBufferFastAccelerate, - _iceConnectionReceivingTimeout, - _iceBackupCandidatePairPingInterval, - _iceCandidatePoolSize, - _shouldPruneTurnPorts, - _shouldPresumeWritableWhenFullyRelayed, - _iceCheckMinInterval, - _iceRegatherIntervalRange]; + return + [NSString stringWithFormat: + @"RTCConfiguration: " + @"{\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%@\n%@\n%d\n}\n", + _iceServers, + [[self class] stringForTransportPolicy:_iceTransportPolicy], + [[self class] stringForBundlePolicy:_bundlePolicy], + [[self class] stringForRtcpMuxPolicy:_rtcpMuxPolicy], + [[self class] stringForTcpCandidatePolicy:_tcpCandidatePolicy], + [[self class] stringForCandidateNetworkPolicy:_candidateNetworkPolicy], + [[self class] stringForContinualGatheringPolicy:_continualGatheringPolicy], + _audioJitterBufferMaxPackets, + _audioJitterBufferFastAccelerate, + _iceConnectionReceivingTimeout, + _iceBackupCandidatePairPingInterval, + _iceCandidatePoolSize, + _shouldPruneTurnPorts, + _shouldPresumeWritableWhenFullyRelayed, + _iceCheckMinInterval, + _iceRegatherIntervalRange, + _maxIPv6Networks]; } #pragma mark - Private @@ -139,6 +143,7 @@ nativeCandidateNetworkPolicyForPolicy:_candidateNetworkPolicy]; nativeConfig->continual_gathering_policy = [[self class] nativeContinualGatheringPolicyForPolicy:_continualGatheringPolicy]; + nativeConfig->max_ipv6_networks = _maxIPv6Networks; nativeConfig->audio_jitter_buffer_max_packets = _audioJitterBufferMaxPackets; nativeConfig->audio_jitter_buffer_fast_accelerate = _audioJitterBufferFastAccelerate ? true : false; diff --git a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h index 17d79b2ed9..fcb62b9416 100644 --- a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h +++ b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h @@ -84,6 +84,15 @@ RTC_EXPORT @property(nonatomic, assign) RTCCandidateNetworkPolicy candidateNetworkPolicy; @property(nonatomic, assign) RTCContinualGatheringPolicy continualGatheringPolicy; + +/** By default, the PeerConnection will use a limited number of IPv6 network + * interfaces, in order to avoid too many ICE candidate pairs being created + * and delaying ICE completion. + * + * Can be set to INT_MAX to effectively disable the limit. + */ +@property(nonatomic, assign) int maxIPv6Networks; + @property(nonatomic, assign) int audioJitterBufferMaxPackets; @property(nonatomic, assign) BOOL audioJitterBufferFastAccelerate; @property(nonatomic, assign) int iceConnectionReceivingTimeout;