From 0ab0dd95ae9a427137d6d94e256284ad4d58fbcb Mon Sep 17 00:00:00 2001 From: Long <73825967+Long-FA@users.noreply.github.com> Date: Sun, 15 Aug 2021 22:20:52 +0700 Subject: [PATCH] DNS-over-HTTPS (Adguard) (#5715) * Update DohProviders.kt * Update NetworkHelper.kt * Update SettingsAdvancedController.kt * fix typo * Fix typo * Fix typo --- .../eu/kanade/tachiyomi/network/DohProviders.kt | 14 ++++++++++++++ .../eu/kanade/tachiyomi/network/NetworkHelper.kt | 1 + .../ui/setting/SettingsAdvancedController.kt | 3 +++ 3 files changed, 18 insertions(+) diff --git a/app/src/main/java/eu/kanade/tachiyomi/network/DohProviders.kt b/app/src/main/java/eu/kanade/tachiyomi/network/DohProviders.kt index 982910f529..f5f62643f7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/network/DohProviders.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/network/DohProviders.kt @@ -11,6 +11,7 @@ import java.net.InetAddress const val PREF_DOH_CLOUDFLARE = 1 const val PREF_DOH_GOOGLE = 2 +const val PREF_DOH_ADGUARD = 3 fun OkHttpClient.Builder.dohCloudflare() = dns( DnsOverHttps.Builder().client(build()) @@ -38,3 +39,16 @@ fun OkHttpClient.Builder.dohGoogle() = dns( ) .build() ) + +// AdGuard "Default" DNS works too but for the sake of making sure no site is blacklisted, i picked "Unfiltered" +fun OkHttpClient.Builder.dohAdGuard() = dns( + DnsOverHttps.Builder().client(build()) + .url("https://dns-unfiltered.adguard.com/dns-query".toHttpUrl()) + .bootstrapDnsHosts( + InetAddress.getByName("94.140.14.140"), + InetAddress.getByName("94.140.14.141"), + InetAddress.getByName("2a10:50c0::1:ff"), + InetAddress.getByName("2a10:50c0::2:ff"), + ) + .build() +) diff --git a/app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt index d67d819515..32c6890982 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt @@ -41,6 +41,7 @@ class NetworkHelper(context: Context) { when (preferences.dohProvider()) { PREF_DOH_CLOUDFLARE -> builder.dohCloudflare() PREF_DOH_GOOGLE -> builder.dohGoogle() + PREF_DOH_ADGUARD -> builder.dohAdGuard() } return builder diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt index 7e64471ba1..a7b7839336 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt @@ -18,6 +18,7 @@ import eu.kanade.tachiyomi.data.library.LibraryUpdateService.Target import eu.kanade.tachiyomi.network.NetworkHelper import eu.kanade.tachiyomi.network.PREF_DOH_CLOUDFLARE import eu.kanade.tachiyomi.network.PREF_DOH_GOOGLE +import eu.kanade.tachiyomi.network.PREF_DOH_ADGUARD import eu.kanade.tachiyomi.ui.base.controller.DialogController import eu.kanade.tachiyomi.ui.base.controller.openInBrowser import eu.kanade.tachiyomi.util.CrashLogUtil @@ -146,11 +147,13 @@ class SettingsAdvancedController : SettingsController() { context.getString(R.string.disabled), "Cloudflare", "Google", + "AdGuard", ) entryValues = arrayOf( "-1", PREF_DOH_CLOUDFLARE.toString(), PREF_DOH_GOOGLE.toString(), + PREF_DOH_ADGUARD.toString(), ) defaultValue = "-1" summary = "%s"