Skip to content
Snippets Groups Projects
Commit ecf3623c authored by Chirayu Desai's avatar Chirayu Desai Committed by Mohammad Hasan Keramat J
Browse files

Add Cloudflare DNS as a private DNS provider


TODO: Add tests

Also includes:
commit d82a7a0585671903ba18cd1d8fab25d9275c2a25
Author: Oliver Scott <olivercscott@gmail.com>
Date:   Fri Jan 29 10:57:26 2021 -0500

    Fix Cloudflare private DNS provider

    Change-Id: I5932d8d7e82621220eb119a212ccecf15e284421
    (cherry picked from commit 24abf646a0df5e00285d1b698adec03eb897388f)

Change-Id: I7e8a320d47e7c5ddbcb9acfaf23032ae92d5d70d
(cherry picked from commit 96ce93f7bf7233008591d22a0d24a6d7cd0a94ff)
Signed-off-by: default avatarMohammad Hasan Keramat J <ikeramat@protonmail.com>
parent 0461823b
No related branches found
No related tags found
No related merge requests found
......@@ -356,6 +356,12 @@ public class ConnectivitySettingsManager {
*/
public static final int PRIVATE_DNS_MODE_OFF = ConnectivitySettingsUtils.PRIVATE_DNS_MODE_OFF;
/**
* @hide
*/
public static final int PRIVATE_DNS_MODE_CLOUDFLARE =
ConnectivitySettingsUtils.PRIVATE_DNS_MODE_CLOUDFLARE;
/**
* One of the private DNS modes that indicates the private DNS mode is automatic, which
* will try to use the current DNS as private DNS.
......@@ -371,10 +377,18 @@ public class ConnectivitySettingsManager {
public static final int PRIVATE_DNS_MODE_PROVIDER_HOSTNAME =
ConnectivitySettingsUtils.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
/**
* @hide
* Alternative: 1dot1dot1dot1.cloudflare-dns.com
*/
public static final String PRIVATE_DNS_SPECIFIER_CLOUDFLARE = "one.one.one.one";
/** @hide */
@Retention(RetentionPolicy.SOURCE)
@IntDef(value = {
PRIVATE_DNS_MODE_OFF,
PRIVATE_DNS_MODE_CLOUDFLARE,
PRIVATE_DNS_MODE_OPPORTUNISTIC,
PRIVATE_DNS_MODE_PROVIDER_HOSTNAME,
})
......@@ -829,6 +843,7 @@ public class ConnectivitySettingsManager {
public static void setPrivateDnsDefaultMode(@NonNull Context context,
@NonNull @PrivateDnsMode int mode) {
if (!(mode == PRIVATE_DNS_MODE_OFF
|| mode == PRIVATE_DNS_MODE_CLOUDFLARE
|| mode == PRIVATE_DNS_MODE_OPPORTUNISTIC
|| mode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME)) {
throw new IllegalArgumentException("Invalid private dns mode");
......
......@@ -23,8 +23,10 @@ import static android.net.ConnectivitySettingsManager.DNS_RESOLVER_SUCCESS_THRES
import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_DEFAULT_MODE;
import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE;
import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_OFF;
import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_CLOUDFLARE;
import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER;
import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_CLOUDFLARE;
import static android.net.resolv.aidl.IDnsResolverUnsolicitedEventListener.VALIDATION_RESULT_FAILURE;
import static android.net.resolv.aidl.IDnsResolverUnsolicitedEventListener.VALIDATION_RESULT_SUCCESS;
......@@ -142,6 +144,10 @@ public class DnsManager {
return new PrivateDnsConfig(specifier, null);
}
if (PRIVATE_DNS_MODE_CLOUDFLARE == mode) {
return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_CLOUDFLARE, null);
}
return new PrivateDnsConfig(useTls);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment