1 // Copyright 2019 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package org.chromium.net; 6 7 import org.chromium.base.annotations.CalledByNative; 8 import org.chromium.base.annotations.JNINamespace; 9 10 import java.net.InetAddress; 11 import java.util.List; 12 13 /** 14 * Class to access DNS server configuration. 15 */ 16 @JNINamespace("net::android") 17 public class DnsStatus { 18 private final List<InetAddress> mDnsServers; 19 20 private final boolean mPrivateDnsActive; 21 22 private final String mPrivateDnsServerName; 23 24 private final String mSearchDomains; 25 DnsStatus(List<InetAddress> dnsServers, boolean privateDnsActive, String privateDnsServerName, String searchDomains)26 public DnsStatus(List<InetAddress> dnsServers, boolean privateDnsActive, 27 String privateDnsServerName, String searchDomains) { 28 mDnsServers = dnsServers; 29 mPrivateDnsActive = privateDnsActive; 30 mPrivateDnsServerName = (privateDnsServerName != null) ? privateDnsServerName : ""; 31 mSearchDomains = (searchDomains != null) ? searchDomains : ""; 32 } 33 34 @CalledByNative getDnsServers()35 public byte[][] getDnsServers() { 36 byte[][] dnsServers = new byte[mDnsServers.size()][]; 37 for (int i = 0; i < mDnsServers.size(); i++) { 38 dnsServers[i] = mDnsServers.get(i).getAddress(); 39 } 40 return dnsServers; 41 } 42 43 @CalledByNative getPrivateDnsActive()44 public boolean getPrivateDnsActive() { 45 return mPrivateDnsActive; 46 } 47 48 @CalledByNative getPrivateDnsServerName()49 public String getPrivateDnsServerName() { 50 return mPrivateDnsServerName; 51 } 52 53 @CalledByNative getSearchDomains()54 public String getSearchDomains() { 55 return mSearchDomains; 56 } 57 } 58