This CL moves the responsibility for restricting the number of IPv6 interfaces used for ICE to BasicPortAllocator. This is the right place to do it in the first place; it's where all the rest of the filtering occurs. And NetworkManager shouldn't need to know about ICE limitations; only the ICE classes should. Part of the reason I'm doing this is that I want to add a "max_ipv6_networks" API to RTCConfiguration, so that applications can override the default easily (see linked bug). But that means that PeerConnection would need to be able to call "set_max_ipv6_networks" on the underlying object that does the filtering, and that method isn't available on the "NetworkManager" base class. So rather than adding another method to a place it doesn't belong, I'm moving it to the place it does belong. In the process, I noticed that "CompareNetworks" is inconsistent with "SortNetworks"; the former orders interfaces alphabetically, and the latter reverse-alphabetically. I believe this was unintentional, and results in undesirable behavior (like "eth1" being preferred over "eth0"), so I'm fixing it and adding a test. BUG=webrtc:7703 Review-Url: https://codereview.webrtc.org/2983213002 Cr-Commit-Position: refs/heads/master@{#19112}
Name: WebRTC URL: http://www.webrtc.org Version: 90 License: BSD License File: LICENSE Description: WebRTC provides real time voice and video processing functionality to enable the implementation of PeerConnection/MediaStream. Third party code used in this project is described in the file LICENSE_THIRD_PARTY.