diff --git a/build.gradle b/build.gradle index 11387444b563119e4a492928756f5c269a1d976e..d5d834097d5c677737fe45cab4bdec2fc8700ef7 100644 --- a/build.gradle +++ b/build.gradle @@ -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" diff --git a/src/cheogram/java/com/cheogram/android/DnsFallback.java b/src/cheogram/java/com/cheogram/android/DnsFallback.java new file mode 100644 index 0000000000000000000000000000000000000000..7cb3886f0b02af0401f8bd20c2197550808f0a48 --- /dev/null +++ b/src/cheogram/java/com/cheogram/android/DnsFallback.java @@ -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 getDnsServerAddresses() { + return List.of("9.9.9.9"); + } +} diff --git a/src/main/java/eu/siacs/conversations/utils/Resolver.java b/src/main/java/eu/siacs/conversations/utils/Resolver.java index ee70cd579d896fdfdce8b0ce73716cb00bd70c09..94c77bfac1df303b35e5fb6fff2300f4b9898382 100644 --- a/src/main/java/eu/siacs/conversations/utils/Resolver.java +++ b/src/main/java/eu/siacs/conversations/utils/Resolver.java @@ -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);