From 27d96e7fe81945221ecf20436ebf62349a3510ce Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 31 Dec 2023 17:21:22 +0100 Subject: [PATCH] Revert "Updated dnsjava" This reverts commit 0abad7e69495050aaba24d2e825b7131c86ef33d. dnsjava 3+ depends on java.time.Duration, which was added in SDK 26 --- CHANGELOG.md | 2 +- app/build.gradle | 2 +- app/src/main/assets/CHANGELOG.md | 2 +- .../java/eu/faircode/email/DnsHelper.java | 48 +++++++------------ metadata/en-US/changelogs/2145.txt | 2 +- 5 files changed, 22 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 64a81e7b5a..6a20595ef0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ For support you can use [the contact form](https://contact.faircode.eu/?product= * Added [Certificate transparency](https://github.com/appmattus/certificatetransparency/blob/main/docs/what-is-certificate-transparency.md) * Small improvements and minor bug fixes -* Updated libraries (Apache Compress, Bugsnag, Bouncy Castle, dnsjava, Jsoup) +* Updated libraries (Apache Compress, Bugsnag, Bouncy Castle, Jsoup) * Updated [translations](https://crowdin.com/project/open-source-email) ### 1.2145 - 2023-12-30 diff --git a/app/build.gradle b/app/build.gradle index be20266bcd..18c1ec1c2c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -548,7 +548,7 @@ dependencies { def jsonpath_version = "2.8.0" def css_version = "0.9.30" def jax_version = "2.3.0-jaxb-1.0.6" - def dnsjava_version = "3.5.3" + def dnsjava_version = "2.1.9" def openpgp_version = "12.0" def badge_version = "1.1.22" def bugsnag_version = "6.1.0" diff --git a/app/src/main/assets/CHANGELOG.md b/app/src/main/assets/CHANGELOG.md index 64a81e7b5a..6a20595ef0 100644 --- a/app/src/main/assets/CHANGELOG.md +++ b/app/src/main/assets/CHANGELOG.md @@ -10,7 +10,7 @@ For support you can use [the contact form](https://contact.faircode.eu/?product= * Added [Certificate transparency](https://github.com/appmattus/certificatetransparency/blob/main/docs/what-is-certificate-transparency.md) * Small improvements and minor bug fixes -* Updated libraries (Apache Compress, Bugsnag, Bouncy Castle, dnsjava, Jsoup) +* Updated libraries (Apache Compress, Bugsnag, Bouncy Castle, Jsoup) * Updated [translations](https://crowdin.com/project/open-source-email) ### 1.2145 - 2023-12-30 diff --git a/app/src/main/java/eu/faircode/email/DnsHelper.java b/app/src/main/java/eu/faircode/email/DnsHelper.java index 5766e93f79..fb3bc3e215 100644 --- a/app/src/main/java/eu/faircode/email/DnsHelper.java +++ b/app/src/main/java/eu/faircode/email/DnsHelper.java @@ -37,6 +37,7 @@ import org.xbill.DNS.MXRecord; import org.xbill.DNS.Message; import org.xbill.DNS.NSRecord; import org.xbill.DNS.Record; +import org.xbill.DNS.SOARecord; import org.xbill.DNS.SRVRecord; import org.xbill.DNS.SimpleResolver; import org.xbill.DNS.TXTRecord; @@ -45,7 +46,6 @@ import org.xbill.DNS.Type; import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; -import java.time.Duration; import java.util.ArrayList; import java.util.List; import java.util.Locale; @@ -97,6 +97,9 @@ public class DnsHelper { case "mx": rtype = Type.MX; break; + case "soa": + rtype = Type.SOA; + break; case "srv": rtype = Type.SRV; break; @@ -186,7 +189,7 @@ public class DnsHelper { } } }; - resolver.setTimeout(Duration.ofSeconds(timeout)); + resolver.setTimeout(timeout); Lookup lookup = new Lookup(name, rtype); lookup.setResolver(resolver); Log.i("Lookup name=" + name + " @" + resolver.getAddress() + " type=" + rtype); @@ -205,13 +208,16 @@ public class DnsHelper { Log.i("Found record=" + record); if (record instanceof NSRecord) { NSRecord ns = (NSRecord) record; - result.add(new DnsRecord(type, ns.getTarget().toString(true))); + result.add(new DnsRecord(ns.getTarget().toString(true))); } else if (record instanceof MXRecord) { MXRecord mx = (MXRecord) record; - result.add(new DnsRecord(type, mx.getTarget().toString(true))); + result.add(new DnsRecord(mx.getTarget().toString(true))); + } else if (record instanceof SOARecord) { + SOARecord soa = (SOARecord) record; + result.add(new DnsRecord(soa.getHost().toString(true))); } else if (record instanceof SRVRecord) { SRVRecord srv = (SRVRecord) record; - result.add(new DnsRecord(type, srv.getTarget().toString(true), srv.getPort(), srv.getPriority(), srv.getWeight())); + result.add(new DnsRecord(srv.getTarget().toString(true), srv.getPort(), srv.getPriority(), srv.getWeight())); } else if (record instanceof TXTRecord) { TXTRecord txt = (TXTRecord) record; for (Object content : txt.getStrings()) { @@ -233,14 +239,14 @@ public class DnsHelper { if (result.size() > 0) result.get(0).response += text; else - result.add(new DnsRecord(type, text, 0)); + result.add(new DnsRecord(text, 0)); } } else if (record instanceof ARecord) { ARecord a = (ARecord) record; - result.add(new DnsRecord(type, a.getAddress().getHostAddress())); + result.add(new DnsRecord(a.getAddress().getHostAddress())); } else if (record instanceof AAAARecord) { AAAARecord aaaa = (AAAARecord) record; - result.add(new DnsRecord(type, aaaa.getAddress().getHostAddress())); + result.add(new DnsRecord(aaaa.getAddress().getHostAddress())); } else throw new IllegalArgumentException(record.getClass().getName()); } @@ -291,41 +297,23 @@ public class DnsHelper { return dns.get(0).getHostAddress(); } - static void test(Context context) throws UnknownHostException { - log(lookup(context, "gmail.com", "ns")); - log(lookup(context, "gmail.com", "mx")); - log(lookup(context, "_imaps._tcp.gmail.com", "srv")); - log(lookup(context, "gmail.com", "txt")); - log(lookup(context, "gmail.com", "a")); - log(lookup(context, "gmail.com", "aaaa")); - } - - static void log(DnsRecord[] records) { - for (DnsRecord record : records) - Log.w("DNS " + record); - } - static class DnsRecord { - String type; String query; String response; Integer port; Integer priority; Integer weight; - DnsRecord(String type, String response) { - this.type = type; + DnsRecord(String response) { this.response = response; } - DnsRecord(String type, String response, int port) { - this.type = type; + DnsRecord(String response, int port) { this.response = response; this.port = port; } - DnsRecord(String type, String response, int port, int priority, int weight) { - this.type = type; + DnsRecord(String response, int port, int priority, int weight) { this.response = response; this.port = port; this.priority = priority; @@ -335,7 +323,7 @@ public class DnsHelper { @NonNull @Override public String toString() { - return type + " " + query + "=" + response + ":" + port + " " + priority + "/" + weight; + return query + "=" + response + ":" + port + " " + priority + "/" + weight; } } } diff --git a/metadata/en-US/changelogs/2145.txt b/metadata/en-US/changelogs/2145.txt index ab6665d3ed..d0501f527b 100644 --- a/metadata/en-US/changelogs/2145.txt +++ b/metadata/en-US/changelogs/2145.txt @@ -10,7 +10,7 @@ Next version * Added Certificate transparency * Small improvements and minor bug fixes -* Updated libraries (Apache Compress, Bugsnag, Bouncy Castle, dnsjava, Jsoup) +* Updated libraries (Apache Compress, Bugsnag, Bouncy Castle, Jsoup) * Updated translations 1.2145 - 2023-12-30