@Override public DnsClient createDnsClient() { return createDnsClient(new DnsClientOptions()); }
@Override public DnsClient createDnsClient(int port, String host) { return createDnsClient(new DnsClientOptions().setHost(host).setPort(port)); }
@Override public DnsClient createDnsClient(DnsClientOptions options) { String host = options.getHost(); int port = options.getPort(); if (host == null || port < 0) { DnsResolverProvider provider = new DnsResolverProvider(this, addressResolverOptions); InetSocketAddress address = provider.nameServerAddresses().get(0); // provide the host and port options = new DnsClientOptions(options) .setHost(address.getAddress().getHostAddress()) .setPort(address.getPort()); } return new DnsClientImpl(this, options); }
private DnsClient prepareDns(DnsClientOptions options) throws Exception { InetSocketAddress addr = dnsServer.localAddress(); return vertx.createDnsClient(new DnsClientOptions(options).setPort(addr.getPort()).setHost(addr.getAddress().getHostAddress())); } }
private DnsClient prepareDns() throws Exception { return prepareDns(new DnsClientOptions().setQueryTimeout(15000)); }
Objects.requireNonNull(options.getHost(), "no null host accepted"); this.options = new DnsClientOptions(options);
@Test public void testDefaultDnsClientWithOptions() throws Exception { testDefaultDnsClient(vertx -> vertx.createDnsClient(new DnsClientOptions())); }
@Test public void testDoNotLogActivity() throws Exception { TestLoggerFactory factory = testLogging(new DnsClientOptions().setLogActivity(false)); assertFalse(factory.hasName("io.netty.handler.logging.LoggingHandler")); }
@Test public void testUnresolvedDnsServer() throws Exception { final String ip = "10.0.0.1"; try { DnsClient dns = vertx.createDnsClient(new DnsClientOptions().setHost("iamanunresolvablednsserver.com").setPort(53)); fail(); } catch (Exception e) { assertTrue(e instanceof IllegalArgumentException); assertEquals("Cannot resolve the host to a valid ip address", e.getMessage()); } }
@Test public void testLogActivity() throws Exception { TestLoggerFactory factory = testLogging(new DnsClientOptions().setLogActivity(true)); assertTrue(factory.hasName("io.netty.handler.logging.LoggingHandler")); }
@Test public void testTimeout() throws Exception { DnsClient dns = vertx.createDnsClient(new DnsClientOptions().setHost("localhost").setPort(10000).setQueryTimeout(5000)); dns.lookup("vertx.io", onFailure(result -> { assertEquals(VertxException.class, result.getClass()); assertEquals("DNS query timeout for vertx.io", result.getMessage()); ((DnsClientImpl) dns).inProgressQueries(num -> { assertEquals(0, (int)num); testComplete(); }); })); await(); }
@Test public void testRecursionDesired() throws Exception { final String ip = "10.0.0.1"; dnsServer.testResolveA(ip); DnsClient dns = prepareDns(new DnsClientOptions().setRecursionDesired(true)); dns.resolveA("vertx.io", onSuccess(result -> { assertFalse(result.isEmpty()); assertEquals(1, result.size()); assertEquals(ip, result.get(0)); DnsMessage msg = dnsServer.pollMessage(); assertTrue(msg.isRecursionDesired()); ((DnsClientImpl) dns).inProgressQueries(num -> { assertEquals(0, (int)num); testComplete(); }); })); await(); }
@Test public void testRecursionNotDesired() throws Exception { final String ip = "10.0.0.1"; dnsServer.testResolveA(ip); DnsClient dns = prepareDns(new DnsClientOptions().setRecursionDesired(false)); dns.resolveA("vertx.io", onSuccess(result -> { assertFalse(result.isEmpty()); assertEquals(1, result.size()); assertEquals(ip, result.get(0)); DnsMessage msg = dnsServer.pollMessage(); assertFalse(msg.isRecursionDesired()); ((DnsClientImpl) dns).inProgressQueries(num -> { assertEquals(0, (int)num); testComplete(); }); })); await(); }
@Override public DnsClient createDnsClient() { return createDnsClient(new DnsClientOptions()); }
@Override public DnsClient createDnsClient(DnsClientOptions options) { String host = options.getHost(); int port = options.getPort(); if (host == null || port < 0) { DnsResolverProvider provider = new DnsResolverProvider(this, addressResolverOptions); InetSocketAddress address = provider.nameServerAddresses().get(0); // provide the host and port options = new DnsClientOptions(options) .setHost(address.getAddress().getHostAddress()) .setPort(address.getPort()); } return new DnsClientImpl(this, options); }
private DnsClient prepareDns(DnsClientOptions options) throws Exception { InetSocketAddress addr = dnsServer.localAddress(); return vertx.createDnsClient(new DnsClientOptions(options).setPort(addr.getPort()).setHost(addr.getAddress().getHostAddress())); } }
@Test public void testDefaultDnsClientWithOptions() throws Exception { testDefaultDnsClient(vertx -> vertx.createDnsClient(new DnsClientOptions())); }
@Test public void testUnresolvedDnsServer() throws Exception { final String ip = "10.0.0.1"; try { DnsClient dns = vertx.createDnsClient(new DnsClientOptions().setHost("iamanunresolvablednsserver.com").setPort(53)); fail(); } catch (Exception e) { assertTrue(e instanceof IllegalArgumentException); assertEquals("Cannot resolve the host to a valid ip address", e.getMessage()); } }
@Test public void testDoNotLogActivity() throws Exception { TestLoggerFactory factory = testLogging(new DnsClientOptions().setLogActivity(false)); assertFalse(factory.hasName("io.netty.handler.logging.LoggingHandler")); }
@Test public void testLogActivity() throws Exception { TestLoggerFactory factory = testLogging(new DnsClientOptions().setLogActivity(true)); assertTrue(factory.hasName("io.netty.handler.logging.LoggingHandler")); }