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 { ...@@ -356,6 +356,12 @@ public class ConnectivitySettingsManager {
*/ */
public static final int PRIVATE_DNS_MODE_OFF = ConnectivitySettingsUtils.PRIVATE_DNS_MODE_OFF; 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 * 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. * will try to use the current DNS as private DNS.
...@@ -371,10 +377,18 @@ public class ConnectivitySettingsManager { ...@@ -371,10 +377,18 @@ public class ConnectivitySettingsManager {
public static final int PRIVATE_DNS_MODE_PROVIDER_HOSTNAME = public static final int PRIVATE_DNS_MODE_PROVIDER_HOSTNAME =
ConnectivitySettingsUtils.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 */ /** @hide */
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@IntDef(value = { @IntDef(value = {
PRIVATE_DNS_MODE_OFF, PRIVATE_DNS_MODE_OFF,
PRIVATE_DNS_MODE_CLOUDFLARE,
PRIVATE_DNS_MODE_OPPORTUNISTIC, PRIVATE_DNS_MODE_OPPORTUNISTIC,
PRIVATE_DNS_MODE_PROVIDER_HOSTNAME, PRIVATE_DNS_MODE_PROVIDER_HOSTNAME,
}) })
...@@ -829,6 +843,7 @@ public class ConnectivitySettingsManager { ...@@ -829,6 +843,7 @@ public class ConnectivitySettingsManager {
public static void setPrivateDnsDefaultMode(@NonNull Context context, public static void setPrivateDnsDefaultMode(@NonNull Context context,
@NonNull @PrivateDnsMode int mode) { @NonNull @PrivateDnsMode int mode) {
if (!(mode == PRIVATE_DNS_MODE_OFF if (!(mode == PRIVATE_DNS_MODE_OFF
|| mode == PRIVATE_DNS_MODE_CLOUDFLARE
|| mode == PRIVATE_DNS_MODE_OPPORTUNISTIC || mode == PRIVATE_DNS_MODE_OPPORTUNISTIC
|| mode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME)) { || mode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME)) {
throw new IllegalArgumentException("Invalid private dns mode"); throw new IllegalArgumentException("Invalid private dns mode");
......
...@@ -23,8 +23,10 @@ import static android.net.ConnectivitySettingsManager.DNS_RESOLVER_SUCCESS_THRES ...@@ -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_DEFAULT_MODE;
import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_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_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_MODE_PROVIDER_HOSTNAME;
import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER; 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_FAILURE;
import static android.net.resolv.aidl.IDnsResolverUnsolicitedEventListener.VALIDATION_RESULT_SUCCESS; import static android.net.resolv.aidl.IDnsResolverUnsolicitedEventListener.VALIDATION_RESULT_SUCCESS;
...@@ -142,6 +144,10 @@ public class DnsManager { ...@@ -142,6 +144,10 @@ public class DnsManager {
return new PrivateDnsConfig(specifier, null); return new PrivateDnsConfig(specifier, null);
} }
if (PRIVATE_DNS_MODE_CLOUDFLARE == mode) {
return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_CLOUDFLARE, null);
}
return new PrivateDnsConfig(useTls); 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