From fec7e96febfc66990a40f2b48074fffec0c14fbe Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 6 Jan 2024 15:26:27 +0100 Subject: [PATCH] DNS: added secure lookup methods --- .../main/java/eu/faircode/email/DnsHelper.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/DnsHelper.java b/app/src/main/java/eu/faircode/email/DnsHelper.java index b1ce0fcc7d..c292ea0f4f 100644 --- a/app/src/main/java/eu/faircode/email/DnsHelper.java +++ b/app/src/main/java/eu/faircode/email/DnsHelper.java @@ -286,6 +286,14 @@ public class DnsHelper { } static InetAddress getByName(Context context, String host) throws UnknownHostException { + return getByName(context, host, false); + } + + static InetAddress[] getAllByName(Context context, String host) throws UnknownHostException { + return getAllByName(context, host, false); + } + + static InetAddress getByName(Context context, String host, boolean secure) throws UnknownHostException { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean dns_custom = prefs.getBoolean("dns_custom", false); @@ -295,10 +303,10 @@ public class DnsHelper { if (ConnectionHelper.isNumericAddress(host)) return InetAddress.getByName(host); - return getAllByName(context, host)[0]; + return getAllByName(context, host, secure)[0]; } - static InetAddress[] getAllByName(Context context, String host) throws UnknownHostException { + static InetAddress[] getAllByName(Context context, String host, boolean secure) throws UnknownHostException { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean dns_custom = prefs.getBoolean("dns_custom", false); @@ -310,11 +318,11 @@ public class DnsHelper { boolean[] has46 = ConnectionHelper.has46(context); if (has46[0]) - for (DnsRecord a : lookup(context, host, "a")) + for (DnsRecord a : _lookup(context, host, "a", LOOKUP_TIMEOUT, secure)) result.add(a.address); if (has46[1]) - for (DnsRecord aaaa : lookup(context, host, "aaaa")) + for (DnsRecord aaaa : _lookup(context, host, "aaaa", LOOKUP_TIMEOUT, secure)) result.add(aaaa.address); if (result.size() == 0)