src/jdk.dns.client/share/classes/jdk/dns/client/NetworkNamesResolver.java
branchaefimov-dns-client-branch
changeset 58984 15e026239a6c
parent 58971 465a15dd6bed
child 59101 258033faefc9
equal deleted inserted replaced
58983:956b1255a5ec 58984:15e026239a6c
    74             }
    74             }
    75         }
    75         }
    76 
    76 
    77         // If no luck - try to ask name servers
    77         // If no luck - try to ask name servers
    78         try (DnsResolver dnsResolver = new DnsResolver()) {
    78         try (DnsResolver dnsResolver = new DnsResolver()) {
    79             var results = lookup(dnsResolver, hostname, protocolFamily, true);
    79             var results = lookup(dnsResolver, hostname, protocolFamily, false);
    80             return results.get(0);
    80             return results.get(0);
    81         }
    81         }
    82     }
    82     }
    83 
    83 
    84     /**
    84     /**
    99                 System.err.printf("Resolver API: Hosts file doesn't know '%s' host%n", hostname);
    99                 System.err.printf("Resolver API: Hosts file doesn't know '%s' host%n", hostname);
   100             }
   100             }
   101         }
   101         }
   102 
   102 
   103         try (var dnsResolver = new DnsResolver()) {
   103         try (var dnsResolver = new DnsResolver()) {
   104             var results = lookup(dnsResolver, hostname, null, false);
   104             var results = lookup(dnsResolver, hostname, null, true);
   105             if (results.isEmpty()) {
   105             if (results.isEmpty()) {
   106                 throw new UnknownHostException(hostname + " unknown host name");
   106                 throw new UnknownHostException(hostname + " unknown host name");
   107             }
   107             }
   108             return results;
   108             return results;
   109         }
   109         }
   176             return null;
   176             return null;
   177         }
   177         }
   178         return addressBuff.toString();
   178         return addressBuff.toString();
   179     }
   179     }
   180 
   180 
   181     private List<InetAddress> lookup(DnsResolver dnsResolver, String host, ProtocolFamily protocolFamily, boolean oneIsEnough) throws UnknownHostException {
   181     private List<InetAddress> lookup(DnsResolver dnsResolver, String host, ProtocolFamily protocolFamily, boolean needAllAddresses) throws UnknownHostException {
   182         if (DEBUG) {
   182         if (DEBUG) {
   183             System.out.printf("Resolver API: internal lookup call - %s%n", host);
   183             System.out.printf("Resolver API: internal lookup call - %s%n", host);
   184         }
   184         }
   185         return AddressResolutionQueue.resolve(dnsResolver, host, protocolFamily, oneIsEnough);
   185         return AddressResolutionQueue.resolve(dnsResolver, host, protocolFamily, needAllAddresses);
   186     }
   186     }
   187 
   187 
   188     private static HostsFileResolver hostsFileResolver = new HostsFileResolver();
   188     private static HostsFileResolver hostsFileResolver = new HostsFileResolver();
   189     private static final boolean DEBUG = java.security.AccessController.doPrivileged(
   189     private static final boolean DEBUG = java.security.AccessController.doPrivileged(
   190             (PrivilegedAction<Boolean>) () -> Boolean.getBoolean("jdk.dns.client.debug"));
   190             (PrivilegedAction<Boolean>) () -> Boolean.getBoolean("jdk.dns.client.debug"));