Fixed
Status Update
Comments
ph...@meta.com <ph...@meta.com> #2
ap...@google.com <ap...@google.com> #4
Project: src
Branch: main
commit fea60ef8e72fb17b4f8a5363aff7e63ab8027b4f
Author: Corby Hoback <corby.hoback@gmail.com>
Date: Wed Aug 14 08:40:50 2024
Fixed issue with missing network interfaces on iOS
Fixed issue with network interfaces due to a missing return value in the
"nw_path_enumerate_interfaces(...)" block. Exposed in iOS 18,
RTCNetworkMonitor::initWithObserver will only enumerate the first
interface, instead of all device interfaces
Bug: webrtc:359245764
Change-Id: Ifb9f28c33306c0096476a4afb0cdb4d734e87b2c
Reviewed-on:https://webrtc-review.googlesource.com/c/src/+/359541
Auto-Submit: Corby <corby.hoback@gmail.com>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42818}
M AUTHORS
M sdk/objc/components/network/RTCNetworkMonitor.mm
https://webrtc-review.googlesource.com/359541
Branch: main
commit fea60ef8e72fb17b4f8a5363aff7e63ab8027b4f
Author: Corby Hoback <corby.hoback@gmail.com>
Date: Wed Aug 14 08:40:50 2024
Fixed issue with missing network interfaces on iOS
Fixed issue with network interfaces due to a missing return value in the
"nw_path_enumerate_interfaces(...)" block. Exposed in iOS 18,
RTCNetworkMonitor::initWithObserver will only enumerate the first
interface, instead of all device interfaces
Bug: webrtc:359245764
Change-Id: Ifb9f28c33306c0096476a4afb0cdb4d734e87b2c
Reviewed-on:
Auto-Submit: Corby <corby.hoback@gmail.com>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42818}
M AUTHORS
M sdk/objc/components/network/RTCNetworkMonitor.mm
ph...@meta.com <ph...@meta.com> #5
Great first-time contribution!
signal folks: you might want to cherry-pick this one!
signal folks: you might want to cherry-pick this one!
mu...@signal.org <mu...@signal.org> #6
Thanks for the CC, and the fix!
Description
Summary
On iOS 18, after BasicNetworkManager::CreateNetworks() creates all interfaces, a bug in
RTCNetworkMonitor::initWithObserver
is causing only one interfaces to remain. As a results, any ICE candidates on these interfaces are excluded and the connection will fail.This seems to be because the
nw_path_enumerate_interfaces
block is missing it's return value which impacts iOS 18.Return true to continue enumerating, or false to stop enumerating.
To resolve this issue, add
return true;
inside thenw_path_enumerate_interfaces
block:What steps will reproduce the problem?
Enable webrtc logging, build and deploy on iOS 18 beta
Monitor the logs for
RTCNetworkMonitor
Notice the incorrect number of networks are monitored, as compared with
basic_port_allocator.cc
which will print out all networks on the device. For example:What is the expected result?
Interfaces, like
utun
andpdp
are expected to be enumerated. For example:What do you see instead?
On iOS 18 Beta (2-5), only one interface
en0
is monitoredDepending on timing, if ICE had started before the failed enumeration, you may also see:
What version of the product are you using?
On what operating system?