summaryrefslogtreecommitdiff
path: root/src/com/google/android/iwlan/IwlanHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/google/android/iwlan/IwlanHelper.java')
-rw-r--r--src/com/google/android/iwlan/IwlanHelper.java42
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;
}