List of usage examples for io.netty.channel.socket InternetProtocolFamily addressType
Class addressType
To view the source code for io.netty.channel.socket InternetProtocolFamily addressType.
Click Source Link
From source file:io.vertx.core.dns.impl.fix.DnsNameResolver.java
License:Apache License
private boolean doResolveCached(String hostname, Promise<InetAddress> promise, DnsCache resolveCache) { final List<DnsCacheEntry> cachedEntries = resolveCache.get(hostname); if (cachedEntries == null) { return false; }//from ww w. j a v a 2s. c om InetAddress address = null; Throwable cause = null; synchronized (cachedEntries) { final int numEntries = cachedEntries.size(); assert numEntries > 0; if (cachedEntries.get(0).cause() != null) { cause = cachedEntries.get(0).cause(); } else { // Find the first entry with the preferred address type. for (InternetProtocolFamily f : resolvedAddressTypes) { for (int i = 0; i < numEntries; i++) { final DnsCacheEntry e = cachedEntries.get(i); if (f.addressType().isInstance(e.address())) { address = e.address(); break; } } } } } if (address != null) { setSuccess(promise, address); } else if (cause != null) { if (!promise.tryFailure(cause)) { logger.warn("Failed to notify failure to a promise: {}", promise, cause); } } else { return false; } return true; }
From source file:io.vertx.core.dns.impl.fix.DnsNameResolver.java
License:Apache License
private boolean doResolveAllCached(String hostname, Promise<List<InetAddress>> promise, DnsCache resolveCache) { final List<DnsCacheEntry> cachedEntries = resolveCache.get(hostname); if (cachedEntries == null) { return false; }//from ww w . ja v a 2 s . c o m List<InetAddress> result = null; Throwable cause = null; synchronized (cachedEntries) { final int numEntries = cachedEntries.size(); assert numEntries > 0; if (cachedEntries.get(0).cause() != null) { cause = cachedEntries.get(0).cause(); } else { for (InternetProtocolFamily f : resolvedAddressTypes) { for (int i = 0; i < numEntries; i++) { final DnsCacheEntry e = cachedEntries.get(i); if (f.addressType().isInstance(e.address())) { if (result == null) { result = new ArrayList<InetAddress>(numEntries); } result.add(e.address()); } } } } } if (result != null) { promise.trySuccess(result); } else if (cause != null) { promise.tryFailure(cause); } else { return false; } return true; }