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.jni_zero.CalledByNative; 8 import org.jni_zero.JNINamespace; 9 10 import java.net.InetAddress; 11 import java.util.List; 12 13 /** Class to access DNS server configuration. */ 14 @JNINamespace("net::android") 15 public class DnsStatus { 16 private final List<InetAddress> mDnsServers; 17 18 private final boolean mPrivateDnsActive; 19 20 private final String mPrivateDnsServerName; 21 22 private final String mSearchDomains; 23 DnsStatus( List<InetAddress> dnsServers, boolean privateDnsActive, String privateDnsServerName, String searchDomains)24 public DnsStatus( 25 List<InetAddress> dnsServers, 26 boolean privateDnsActive, 27 String privateDnsServerName, 28 String searchDomains) { 29 mDnsServers = dnsServers; 30 mPrivateDnsActive = privateDnsActive; 31 mPrivateDnsServerName = (privateDnsServerName != null) ? privateDnsServerName : ""; 32 mSearchDomains = (searchDomains != null) ? searchDomains : ""; 33 } 34 35 @CalledByNative getDnsServers()36 public byte[][] getDnsServers() { 37 byte[][] dnsServers = new byte[mDnsServers.size()][]; 38 for (int i = 0; i < mDnsServers.size(); i++) { 39 dnsServers[i] = mDnsServers.get(i).getAddress(); 40 } 41 return dnsServers; 42 } 43 44 @CalledByNative getPrivateDnsActive()45 public boolean getPrivateDnsActive() { 46 return mPrivateDnsActive; 47 } 48 49 @CalledByNative getPrivateDnsServerName()50 public String getPrivateDnsServerName() { 51 return mPrivateDnsServerName; 52 } 53 54 @CalledByNative getSearchDomains()55 public String getSearchDomains() { 56 return mSearchDomains; 57 } 58 } 59