aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/utils/AndroidUsingLinkProperties.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2017-10-29 20:03:49 +0100
committerChristian Schneppe <christian@pix-art.de>2017-10-29 20:03:49 +0100
commitffd5bb0176821664e9d7ab2ea5559e17a8ace3a0 (patch)
treee9d54d4f823242e20312e0bf02584ebee6a16e8b /src/main/java/de/pixart/messenger/utils/AndroidUsingLinkProperties.java
parent44552010ed6bfb45d2adf2ba2b1d22bb3a9c1802 (diff)
Resolver: active network gets high priority
Diffstat (limited to 'src/main/java/de/pixart/messenger/utils/AndroidUsingLinkProperties.java')
-rw-r--r--src/main/java/de/pixart/messenger/utils/AndroidUsingLinkProperties.java21
1 files changed, 11 insertions, 10 deletions
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<String> 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<String> 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()]);