@Override protected AddressResolver<SocketAddress> newResolver(EventExecutor executor) throws Exception { return new NoopAddressResolver(executor); } }
@Override protected AddressResolver<InetSocketAddress> newResolver(EventExecutor executor) throws Exception { return new DefaultNameResolver(executor).asAddressResolver(); } }
@Override public void close() { nameResolver.close(); } }
/** * Return a {@link AddressResolver} that will use this name resolver underneath. * It's cached internally, so the same instance is always returned. */ public AddressResolver<InetSocketAddress> asAddressResolver() { AddressResolver<InetSocketAddress> result = addressResolver; if (result == null) { synchronized (this) { result = addressResolver; if (result == null) { addressResolver = result = new InetSocketAddressResolver(executor(), this); } } } return result; } }
/** * Parse hosts file at standard OS location using the system default {@link Charset} for decoding. * * @return a {@link HostsFileEntries} * @throws IOException file could not be read */ public static HostsFileEntries parse() throws IOException { return parse(locateHostsFile()); }
@Override public final boolean isResolved(SocketAddress address) { if (!isSupported(address)) { throw new UnsupportedAddressTypeException(); } @SuppressWarnings("unchecked") final T castAddress = (T) address; return doIsResolved(castAddress); }
@Override public final Future<List<T>> resolveAll(String inetHost) { final Promise<List<T>> promise = executor().newPromise(); return resolveAll(inetHost, promise); }
DefaultHostsFileEntriesResolver(HostsFileEntries entries) { inet4Entries = entries.inet4Entries(); inet6Entries = entries.inet6Entries(); }
/** * Creates a new {@link AddressResolver}. Override this method to create an alternative {@link AddressResolver} * implementation or override the default configuration. */ protected AddressResolver<InetSocketAddress> newAddressResolver(EventLoop eventLoop, NameResolver<InetAddress> resolver) throws Exception { return new InetSocketAddressResolver(eventLoop, resolver); } }
@Override public void operationComplete(Future<Object> future) throws Exception { synchronized (resolvers) { resolvers.remove(executor); } newResolver.close(); } });
/** * Parse a hosts file using the system default {@link Charset} for decoding. * * @param file the file to be parsed * @return a {@link HostsFileEntries} * @throws IOException file could not be read */ public static HostsFileEntries parse(File file) throws IOException { return parse(file, Charset.defaultCharset()); }
@Override protected void doResolveAll(String inetHost, Promise<List<T>> promise) throws Exception { doResolveAllRec(inetHost, promise, 0, null); }
@Override protected void doResolve(String inetHost, Promise<T> promise) throws Exception { doResolveRec(inetHost, promise, 0, null); }
/** * Parse hosts file at standard OS location using the systems default {@link Charset} for decoding. * * @return a {@link HostsFileEntries} */ public static HostsFileEntries parseSilently() { return parseSilently(Charset.defaultCharset()); }
public DefaultHostsFileEntriesResolver() { this(parseEntries()); }
/** * Parse hosts file at standard OS location using the system default {@link Charset} for decoding. * * @return a {@link HostsFileEntries} * @throws IOException file could not be read */ public static HostsFileEntries parse() throws IOException { return parse(locateHostsFile()); }
@Override protected AddressResolver<InetSocketAddress> newResolver(EventExecutor executor) throws Exception { return new DefaultNameResolver(executor).asAddressResolver(); } }
@Override public void close() { nameResolver.close(); } }
@Override protected AddressResolver<SocketAddress> newResolver(EventExecutor executor) throws Exception { return new NoopAddressResolver(executor); } }