DnsAddressStreamList(DnsServerAddressStream stream) { duplicate = stream.duplicate(); }
DnsAddressStreamList(DnsServerAddressStream stream) { duplicate = stream.duplicate(); }
@Override public Iterator<InetSocketAddress> iterator() { return new Iterator<InetSocketAddress>() { private final DnsServerAddressStream stream = duplicate.duplicate(); private int i; @Override public boolean hasNext() { return i < stream.size(); } @Override public InetSocketAddress next() { if (!hasNext()) { throw new NoSuchElementException(); } i++; return stream.next(); } @Override public void remove() { throw new UnsupportedOperationException(); } }; } }
@Override public Iterator<InetSocketAddress> iterator() { return new Iterator<InetSocketAddress>() { private final DnsServerAddressStream stream = duplicate.duplicate(); private int i; @Override public boolean hasNext() { return i < stream.size(); } @Override public InetSocketAddress next() { if (!hasNext()) { throw new NoSuchElementException(); } i++; return stream.next(); } @Override public void remove() { throw new UnsupportedOperationException(); } }; } }
private DnsServerAddressStream getNameServers(String hostname) { DnsServerAddressStream stream = getNameServersFromCache(hostname); return stream == null ? nameServerAddrs.duplicate() : stream; }
private DnsServerAddressStream getNameServers(String hostname) { DnsServerAddressStream stream = getNameServersFromCache(hostname); return stream == null ? nameServerAddrs.duplicate() : stream; }
@Override public InetSocketAddress get(int index) { if (addresses == null) { DnsServerAddressStream stream = duplicate.duplicate(); addresses = new ArrayList<InetSocketAddress>(size()); for (int i = 0; i < stream.size(); i++) { addresses.add(stream.next()); } } return addresses.get(index); }
@Override public InetSocketAddress get(int index) { if (addresses == null) { DnsServerAddressStream stream = duplicate.duplicate(); addresses = new ArrayList<InetSocketAddress>(size()); for (int i = 0; i < stream.size(); i++) { addresses.add(stream.next()); } } return addresses.get(index); }
private void internalResolve(String name, Promise<List<T>> promise) { DnsServerAddressStream nameServerAddressStream = getNameServers(name); final int end = expectedTypes.length - 1; for (int i = 0; i < end; ++i) { if (!query(name, expectedTypes[i], nameServerAddressStream.duplicate(), promise)) { return; } } query(name, expectedTypes[end], nameServerAddressStream, promise); }
private void internalResolve(String name, Promise<List<T>> promise) { for (;;) { // Resolve from cnameCache() until there is no more cname entry cached. String mapping = cnameCache().get(hostnameWithDot(name)); if (mapping == null) { break; } name = mapping; } try { DnsServerAddressStream nameServerAddressStream = getNameServers(name); final int end = expectedTypes.length - 1; for (int i = 0; i < end; ++i) { if (!query(name, expectedTypes[i], nameServerAddressStream.duplicate(), false, promise)) { return; } } query(name, expectedTypes[end], nameServerAddressStream, false, promise); } finally { // Now flush everything we submitted before. parent.flushQueries(); } }
DnsAddressStreamList(DnsServerAddressStream stream) { duplicate = stream.duplicate(); }
@Override public Iterator<InetSocketAddress> iterator() { return new Iterator<InetSocketAddress>() { private final DnsServerAddressStream stream = duplicate.duplicate(); private int i; @Override public boolean hasNext() { return i < stream.size(); } @Override public InetSocketAddress next() { if (!hasNext()) { throw new NoSuchElementException(); } i++; return stream.next(); } @Override public void remove() { throw new UnsupportedOperationException(); } }; } }
private DnsServerAddressStream getNameServers(String hostname) { DnsServerAddressStream stream = getNameServersFromCache(hostname); return stream == null ? nameServerAddrs.duplicate() : stream; }
private DnsServerAddressStream getNameServers(String hostname) { DnsServerAddressStream stream = getNameServersFromCache(hostname); return stream == null ? nameServerAddrs.duplicate() : stream; }
@Override public InetSocketAddress get(int index) { if (addresses == null) { DnsServerAddressStream stream = duplicate.duplicate(); addresses = new ArrayList<InetSocketAddress>(size()); for (int i = 0; i < stream.size(); i++) { addresses.add(stream.next()); } } return addresses.get(index); }
private void internalResolve(Promise<List<T>> promise) { DnsServerAddressStream nameServerAddressStream = getNameServers(hostname); final int end = expectedTypes.length - 1; for (int i = 0; i < end; ++i) { if (!query(hostname, expectedTypes[i], nameServerAddressStream.duplicate(), promise)) { return; } } query(hostname, expectedTypes[end], nameServerAddressStream, promise); }
private void internalResolve(String name, Promise<List<T>> promise) { for (;;) { // Resolve from cnameCache() until there is no more cname entry cached. String mapping = cnameCache().get(hostnameWithDot(name)); if (mapping == null) { break; } name = mapping; } try { DnsServerAddressStream nameServerAddressStream = getNameServers(name); final int end = expectedTypes.length - 1; for (int i = 0; i < end; ++i) { if (!query(name, expectedTypes[i], nameServerAddressStream.duplicate(), false, promise)) { return; } } query(name, expectedTypes[end], nameServerAddressStream, false, promise); } finally { // Now flush everything we submitted before. parent.flushQueries(); } }