Commit 8a61ae62 authored by topjohnwu's avatar topjohnwu

Disable DoH upon failure

parent 60e1e07e
...@@ -22,6 +22,7 @@ import retrofit2.Retrofit ...@@ -22,6 +22,7 @@ import retrofit2.Retrofit
import retrofit2.converter.moshi.MoshiConverterFactory import retrofit2.converter.moshi.MoshiConverterFactory
import retrofit2.converter.scalars.ScalarsConverterFactory import retrofit2.converter.scalars.ScalarsConverterFactory
import java.net.InetAddress import java.net.InetAddress
import java.net.UnknownHostException
val networkingModule = module { val networkingModule = module {
single { createOkHttpClient(get()) } single { createOkHttpClient(get()) }
...@@ -62,10 +63,16 @@ fun createOkHttpClient(context: Context): OkHttpClient { ...@@ -62,10 +63,16 @@ fun createOkHttpClient(context: Context): OkHttpClient {
.resolvePrivateAddresses(true) /* To make PublicSuffixDatabase never used */ .resolvePrivateAddresses(true) /* To make PublicSuffixDatabase never used */
.build() .build()
var skipDoH = false
builder.dns { hostname -> builder.dns { hostname ->
// Only resolve via DoH for known DNS polluted hostnames // Only resolve via DoH for known DNS polluted hostnames
if (hostname == "raw.githubusercontent.com") { if (!skipDoH && hostname == "raw.githubusercontent.com") {
try {
doh.lookup(hostname) doh.lookup(hostname)
} catch (e: UnknownHostException) {
skipDoH = true
Dns.SYSTEM.lookup(hostname)
}
} else { } else {
Dns.SYSTEM.lookup(hostname) Dns.SYSTEM.lookup(hostname)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment