From f632a96f113821ea734f514428583557ba381678 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 1 Sep 2019 20:05:23 +0200 Subject: [PATCH] Always honor set DNS servers --- .../eu/faircode/netguard/ServiceSinkhole.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java b/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java index cde8e496..495f36cc 100644 --- a/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java +++ b/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java @@ -1149,18 +1149,19 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex)); } - // Use system DNS servers only when no two custom DNS servers specified - if (listDns.size() < 2) - for (String def_dns : sysDns) - try { - InetAddress ddns = InetAddress.getByName(def_dns); - if (!listDns.contains(ddns) && - !(ddns.isLoopbackAddress() || ddns.isAnyLocalAddress()) && - (ip6 || ddns instanceof Inet4Address)) - listDns.add(ddns); - } catch (Throwable ex) { - Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex)); - } + if (listDns.size() == 2) + return listDns; + + for (String def_dns : sysDns) + try { + InetAddress ddns = InetAddress.getByName(def_dns); + if (!listDns.contains(ddns) && + !(ddns.isLoopbackAddress() || ddns.isAnyLocalAddress()) && + (ip6 || ddns instanceof Inet4Address)) + listDns.add(ddns); + } catch (Throwable ex) { + Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex)); + } // Remove local DNS servers when not routing LAN boolean lan = prefs.getBoolean("lan", false);