Expose a link-local network interfaces enumeration option
The bug 8432 is caused by trying to connect through a "link-local" interface (IP address 169.254.0.x/16), which is listed among the iPhone network interfaces. The bug is not happening if the link-local network interfaces are skipped in the ICE candidate gethering process. To control this behaviour an option - disable_link_local_networks - is added inside the RTCConfiguration. It is used to set the new BasicPortAllocatorSession flag - PORTALLOCATOR_DISABLE_LINK_LOCAL_NETWORKS. The port allocator flag is added if the configuration option is set. IPIsLinkLocal IPAddress function and its friends (IPIsLoopback, IPIsPrivate) are refactored to work on both IPv4 and IPv6. Unit test IPIsLinkLocal. Bonus: fix a bug in IPIsLinkLocalV6: take into account just 10 network mask bits instead of 16. Bug: webrtc:8432 Change-Id: Ibe8f677a36098057b7fcad5c798380727b23359b Reviewed-on: https://webrtc-review.googlesource.com/36380 Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org> Reviewed-by: Peter Thatcher <pthatcher@webrtc.org> Reviewed-by: Kári Helgason <kthelgason@webrtc.org> Reviewed-by: Zhi Huang <zhihuang@webrtc.org> Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21922}
This commit is contained in:
committed by
Commit Bot
parent
5dfde18c77
commit
2870b0a57e
@ -380,6 +380,10 @@ class PeerConnectionInterface : public rtc::RefCountInterface {
|
||||
// Can be set to INT_MAX to effectively disable the limit.
|
||||
int max_ipv6_networks = cricket::kDefaultMaxIPv6Networks;
|
||||
|
||||
// Exclude link-local network interfaces
|
||||
// from considertaion for gathering ICE candidates.
|
||||
bool disable_link_local_networks = false;
|
||||
|
||||
// If set to true, use RTP data channels instead of SCTP.
|
||||
// TODO(deadbeef): Remove this. We no longer commit to supporting RTP data
|
||||
// channels, though some applications are still working on moving off of
|
||||
|
||||
Reference in New Issue
Block a user