Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80685dcd authored by Chirayu Desai's avatar Chirayu Desai Committed by Mohammed Althaf T
Browse files

Add Quad9 DNS as a private DNS provider

TODO: Add tests

Change-Id: I7e8a320d47e7c5ddbcb9acfaf23032ae92d5d70d
parent c128bc8a
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -796,6 +796,10 @@ public class ConnectivityManager {
     * @hide
     */
    public static final String PRIVATE_DNS_MODE_OFF = "off";
    /**
     * @hide
     */
    public static final String PRIVATE_DNS_MODE_QUADNINE = "quadnine";
    /**
     * @hide
     */
@@ -804,6 +808,18 @@ public class ConnectivityManager {
     * @hide
     */
    public static final String PRIVATE_DNS_MODE_PROVIDER_HOSTNAME = "hostname";
    /**
     * @hide
     */
    public static final String PRIVATE_DNS_SPECIFIER_QUADNINE = "dns.quad9.net";
    /**
     * @hide
     */
    public static final String DNS_QUADNINE_IP1 = "9.9.9.9";
    /**
     * @hide
     */
    public static final String DNS_QUADNINE_IP2 = "9.9.9.10";
    /**
     * The default Private DNS mode.
     *
+14 −0
Original line number Diff line number Diff line
@@ -18,7 +18,11 @@ package com.android.server.connectivity;

import static android.net.ConnectivityManager.PRIVATE_DNS_DEFAULT_MODE_FALLBACK;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_QUADNINE;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
import static android.net.ConnectivityManager.PRIVATE_DNS_SPECIFIER_QUADNINE;
import static android.net.ConnectivityManager.DNS_QUADNINE_IP1;
import static android.net.ConnectivityManager.DNS_QUADNINE_IP2;
import static android.provider.Settings.Global.DNS_RESOLVER_MAX_SAMPLES;
import static android.provider.Settings.Global.DNS_RESOLVER_MIN_SAMPLES;
import static android.provider.Settings.Global.DNS_RESOLVER_SAMPLE_VALIDITY_SECONDS;
@@ -126,6 +130,10 @@ public class DnsManager {
    private static final int DNS_RESOLVER_DEFAULT_MIN_SAMPLES = 8;
    private static final int DNS_RESOLVER_DEFAULT_MAX_SAMPLES = 64;

    private static InetAddress IpAddress(String addr) {
        return InetAddress.parseNumericAddress(addr);
    }

    public static PrivateDnsConfig getPrivateDnsConfig(ContentResolver cr) {
        final String mode = getPrivateDnsMode(cr);

@@ -136,6 +144,12 @@ public class DnsManager {
            return new PrivateDnsConfig(specifier, null);
        }

        if (PRIVATE_DNS_MODE_QUADNINE.equals(mode)) {
            InetAddress[] ips = new InetAddress[]{
                    IpAddress(DNS_QUADNINE_IP1), IpAddress(DNS_QUADNINE_IP2)};
            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_QUADNINE, ips);
        }

        return new PrivateDnsConfig(useTls);
    }