Change summary
build.gradle | 2
src/cheogram/java/com/cheogram/android/DnsFallback.java | 28 ++++++++++
src/main/java/eu/siacs/conversations/utils/Resolver.java | 1
3 files changed, 30 insertions(+), 1 deletion(-)
Detailed changes
@@ -81,7 +81,7 @@ dependencies {
implementation 'org.bouncycastle:bcmail-jdk18on:1.78.1'
implementation 'org.bouncycastle:bcpg-jdk18on:1.78.1'
implementation 'com.google.zxing:core:3.5.3'
- implementation 'org.minidns:minidns-hla:1.0.5'
+ implementation 'org.minidns:minidns-hla:1.1.1'
implementation 'me.leolin:ShortcutBadger:1.1.22@aar'
implementation 'org.whispersystems:signal-protocol-java:2.6.2'
implementation "com.wefika:flowlayout:0.4.1"
@@ -0,0 +1,28 @@
+package com.cheogram.android;
+
+import android.content.Context;
+
+import java.net.Inet4Address;
+import java.net.InetAddress;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.minidns.dnsserverlookup.AbstractDnsServerLookupMechanism;
+import org.minidns.dnsserverlookup.AndroidUsingExec;
+
+public class DnsFallback extends AbstractDnsServerLookupMechanism {
+
+ public DnsFallback() {
+ super("DnsFallback", AndroidUsingExec.PRIORITY + 1000);
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public List<String> getDnsServerAddresses() {
+ return List.of("9.9.9.9");
+ }
+}
@@ -234,6 +234,7 @@ public class Resolver {
DnsClient.removeDNSServerLookupMechanism(AndroidUsingExec.INSTANCE);
DnsClient.addDnsServerLookupMechanism(AndroidUsingExecLowPriority.INSTANCE);
DnsClient.addDnsServerLookupMechanism(new AndroidUsingLinkProperties(service));
+ DnsClient.addDnsServerLookupMechanism(new com.cheogram.android.DnsFallback());
final AbstractDnsClient client = ResolverApi.INSTANCE.getClient();
if (client instanceof ReliableDnsClient) {
((ReliableDnsClient) client).setUseHardcodedDnsServers(false);