net: Support ifaddrs on Android API level >= 24 #1338
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Baresip's default out-of-the-box networking currently doesn't work well on Android when IPv6-only due to inability to enumerate IPv6-only network interfaces. This appears to be because
ifaddrs
support is currently disabled. There are APIs to manually add interfaces to Baresip but this requires more advanced integration with the Java API in Android.Android added
ifaddrs
support in API level 24 (Android 7) which was ages ago:https://android.googlesource.com/platform/bionic/+/master/libc/include/ifaddrs.h#81
This PR allows
ifaddrs
to be used on Android API >= 24 so that the built-in Baresip networking works with IPv6-only networks.I have enabled it and tested that with this change, Baresip can successfully use
getifaddrs
on a non-rooted Android 13 phone to enumerate IPv6-only interfaces without any integration with Java APIs.Extracted from #1329 (many discussions in that PR, most of which is unrelated to this change).