webrtc/sdk
Jonas Oreland da2fd2a2b2 Fix problem with ipv4 over ipv6 on Android
This patch fixes a problem with using ipv4 over ipv6
addresses on Android. These addresses are discovered
using 'getifaddr' with interfaces called 'v4-wlan0' or
'v4-rmnet' but the Android API does not report them.

This leads to failure when BasicPortAllocator tries
to bind a socket to the ip-address, making the ipv4
address unusable.

This solution does the following
1) Insert BasicNetworkManager as NetworkBinderInterface
rather than AndroidNetworkManager.

2) When SocketServer calls BindSocketToNetwork,
BasicNetworkManager first lookup the interface name,
and then calls AndroidNetworkManager.

3) AndroidNetworkManager will then first try to bind
using the known ip-addresses, and if it can't find the network
it will instead match the interface names.

The patch has been tested on real android devices, and works fine.
And everything is disabled by default, and is enabled by field trial.

My plan is to rollout the feature, checking that it does not introduce
any problems, and if so, enabled for all.

Bug: webrtc:10707
Change-Id: I7081ba43d4ce17077acfa5fbab44eda127ac3971
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211003
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33422}
2021-03-10 16:08:18 +00:00
..
android Fix problem with ipv4 over ipv6 on Android 2021-03-10 16:08:18 +00:00
objc Fix nullability of completion handlers in iOS SDK. 2021-03-10 11:48:04 +00:00
BUILD.gn Add AV1 encoder&decoder wrappers for iOS SDK. 2021-03-03 20:08:17 +00:00
media_constraints.cc Remove deprecated code related to AEC2 2019-08-07 10:09:36 +00:00
media_constraints.h Remove deprecated code related to AEC2 2019-08-07 10:09:36 +00:00
media_constraints_unittest.cc Move MediaConstraintsInterface to sdk/, and make it a concrete class 2019-02-14 12:07:07 +00:00
OWNERS Remove wildcard ownership for build files. 2020-02-19 14:05:46 +00:00