From ffd5bb0176821664e9d7ab2ea5559e17a8ace3a0 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sun, 29 Oct 2017 20:03:49 +0100 Subject: Resolver: active network gets high priority --- .../messenger/utils/AndroidUsingLinkProperties.java | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'src/main/java/de/pixart/messenger/utils') diff --git a/src/main/java/de/pixart/messenger/utils/AndroidUsingLinkProperties.java b/src/main/java/de/pixart/messenger/utils/AndroidUsingLinkProperties.java index 64c144a1f..76f8efa7c 100644 --- a/src/main/java/de/pixart/messenger/utils/AndroidUsingLinkProperties.java +++ b/src/main/java/de/pixart/messenger/utils/AndroidUsingLinkProperties.java @@ -44,18 +44,19 @@ public class AndroidUsingLinkProperties extends AbstractDNSServerLookupMechanism int vpnOffset = 0; for (Network network : networks) { LinkProperties linkProperties = connectivityManager.getLinkProperties(network); + if (linkProperties == null) { + continue; + } NetworkInfo networkInfo = connectivityManager.getNetworkInfo(network); final boolean isActiveNetwork = network.equals(activeNetwork); - if (linkProperties != null) { - if (networkInfo != null && isActiveNetwork && networkInfo.getType() == ConnectivityManager.TYPE_VPN) { - final List tmp = getIPv4First(linkProperties.getDnsServers()); - servers.addAll(0, tmp); - vpnOffset += tmp.size(); - } else if (hasDefaultRoute(linkProperties)) { - servers.addAll(vpnOffset, getIPv4First(linkProperties.getDnsServers())); - } else { - servers.addAll(getIPv4First(linkProperties.getDnsServers())); - } + if (networkInfo != null && isActiveNetwork && networkInfo.getType() == ConnectivityManager.TYPE_VPN) { + final List tmp = getIPv4First(linkProperties.getDnsServers()); + servers.addAll(0, tmp); + vpnOffset += tmp.size(); + } else if (hasDefaultRoute(linkProperties) || isActiveNetwork) { + servers.addAll(vpnOffset, getIPv4First(linkProperties.getDnsServers())); + } else { + servers.addAll(getIPv4First(linkProperties.getDnsServers())); } } return servers.toArray(new String[servers.size()]); -- cgit v1.2.3