diff options
Diffstat (limited to 'src/com/google/android/iwlan/IwlanHelper.java')
-rw-r--r-- | src/com/google/android/iwlan/IwlanHelper.java | 42 |
1 files changed, 13 insertions, 29 deletions
diff --git a/src/com/google/android/iwlan/IwlanHelper.java b/src/com/google/android/iwlan/IwlanHelper.java index efda5b7..ade7189 100644 --- a/src/com/google/android/iwlan/IwlanHelper.java +++ b/src/com/google/android/iwlan/IwlanHelper.java @@ -110,14 +110,15 @@ public class IwlanHelper { return info; } - public static List<InetAddress> getAddressesForNetwork(Network network, Context context) { + // Retrieves all IP addresses for this Network, including stacked IPv4 link addresses. + public static List<InetAddress> getAllAddressesForNetwork(Network network, Context context) { ConnectivityManager connectivityManager = context.getSystemService(ConnectivityManager.class); List<InetAddress> gatewayList = new ArrayList<>(); if (network != null) { LinkProperties linkProperties = connectivityManager.getLinkProperties(network); if (linkProperties != null) { - for (LinkAddress linkAddr : linkProperties.getLinkAddresses()) { + for (LinkAddress linkAddr : linkProperties.getAllLinkAddresses()) { InetAddress inetAddr = linkAddr.getAddress(); // skip linklocal and loopback addresses if (!inetAddr.isLoopbackAddress() && !inetAddr.isLinkLocalAddress()) { @@ -132,25 +133,6 @@ public class IwlanHelper { return gatewayList; } - public static List<InetAddress> getStackedAddressesForNetwork( - Network network, Context context) { - ConnectivityManager connectivityManager = - context.getSystemService(ConnectivityManager.class); - List<InetAddress> gatewayList = new ArrayList<>(); - if (network != null) { - LinkProperties linkProperties = connectivityManager.getLinkProperties(network); - if (linkProperties != null) { - for (LinkAddress linkAddr : linkProperties.getAllLinkAddresses()) { - InetAddress inetAddr = linkAddr.getAddress(); - if ((inetAddr instanceof Inet4Address)) { - gatewayList.add(inetAddr); - } - } - } - } - return gatewayList; - } - /** * The method is to check if this IP address is an IPv4-embedded IPv6 address(Pref64::/n). * @@ -162,22 +144,24 @@ public class IwlanHelper { } public static boolean hasIpv6Address(List<InetAddress> localAddresses) { - for (InetAddress address : localAddresses) { - if (address instanceof Inet6Address) { - return true; + if (localAddresses != null) { + for (InetAddress address : localAddresses) { + if (address instanceof Inet6Address) { + return true; + } } } - return false; } public static boolean hasIpv4Address(List<InetAddress> localAddresses) { - for (InetAddress address : localAddresses) { - if (address instanceof Inet4Address) { - return true; + if (localAddresses != null) { + for (InetAddress address : localAddresses) { + if (address instanceof Inet4Address) { + return true; + } } } - return false; } |