[release/6.0-rc2] [iOS] Make sure IPGlobalProperties and NetworkInterface.GetIsNetworkAvailable methods return the correct info (#59258)
Backport of #57096
This change makes sure some of the IPGlobalProperties stop throwing exceptions and return the correct values.
GetIPv4GlobalStatistics, GetIcmpV4Statistics, GetTcpIPv4Statistics, GetUdpIPv4Statistics no longer throw NetworkInformationException.
GetActiveTcpConnections no longer returns TcpConnectionInformation instances only with the State of Unknown.
GetActiveTcpListeners return the correct IPEndPoint details for the IPV6 loopback.
NetworkInterface.GetIsNetworkAvailable no longer returns false for every call.
The reason these methods were behaving incorrectly on iOS is due to Apple not including the public headers for icmp_var.h, ip_var.h, tcp_fsm.h, if_media.h, and udp_var.h in the iOS SDK. This would lead to, for example, pal_tcpstate.c always returning TcpState_Unknown even if the underlying native value was TCPS_ESTABLISHED. This change includes the missing public headers in our build.
Fixes #36890
12 files changed: