List of usage examples for io.netty.handler.codec.dns DefaultDnsQuestion DefaultDnsQuestion
public DefaultDnsQuestion(String name, DnsRecordType type)
From source file:chat.viska.xmpp.Connection.java
License:Apache License
private static Single<List<DnsRecord>> lookupDnsUsingNetty(final String query, final DnsRecordType type, @Nullable final Iterable<String> dns) { final NioEventLoopGroup threadPool = new NioEventLoopGroup(); final DnsNameResolverBuilder builder = new DnsNameResolverBuilder(threadPool.next()); builder.channelFactory(new ReflectiveChannelFactory<>(NioDatagramChannel.class)); builder.decodeIdn(true);//from ww w . j a v a 2 s . c o m if (dns != null) { builder.searchDomains(dns); } return Single.fromFuture(builder.build().query(new DefaultDnsQuestion(query, type))) .map(AddressedEnvelope::content).map(message -> { final int recordsSize = message.count(DnsSection.ANSWER); final List<DnsRecord> records = new ArrayList<>(recordsSize); for (int it = 0; it < recordsSize; ++it) { records.add(message.recordAt(DnsSection.ANSWER, it)); } return records; }).doFinally(threadPool::shutdownGracefully); }
From source file:com.linecorp.armeria.client.endpoint.dns.DnsAddressEndpointGroup.java
License:Apache License
private static List<DnsQuestion> newQuestions(String hostname, @Nullable ResolvedAddressTypes resolvedAddressTypes) { if (resolvedAddressTypes == null) { if (NetUtil.isIpV4StackPreferred()) { resolvedAddressTypes = ResolvedAddressTypes.IPV4_ONLY; } else {/*from ww w . java2 s . c o m*/ resolvedAddressTypes = ResolvedAddressTypes.IPV4_PREFERRED; } } final ImmutableList.Builder<DnsQuestion> builder = ImmutableList.builder(); switch (resolvedAddressTypes) { case IPV4_ONLY: case IPV4_PREFERRED: case IPV6_PREFERRED: builder.add(new DefaultDnsQuestion(hostname, DnsRecordType.A)); break; } switch (resolvedAddressTypes) { case IPV6_ONLY: case IPV4_PREFERRED: case IPV6_PREFERRED: builder.add(new DefaultDnsQuestion(hostname, DnsRecordType.AAAA)); break; } return builder.build(); }
From source file:com.linecorp.armeria.client.endpoint.dns.DnsAddressEndpointGroupTest.java
License:Apache License
@Test public void ipV4Only() throws Exception { try (TestDnsServer server = new TestDnsServer(ImmutableMap.of(new DefaultDnsQuestion("foo.com.", A), new DefaultDnsResponse(0).addRecord(ANSWER, newAddressRecord("foo.com.", "1.1.1.1")) .addRecord(ANSWER, newAddressRecord("unrelated.com", "1.2.3.4"))))) { try (DnsAddressEndpointGroup group = new DnsAddressEndpointGroupBuilder("foo.com").port(8080) .serverAddresses(server.addr()).resolvedAddressTypes(ResolvedAddressTypes.IPV4_ONLY).build()) { assertThat(group.awaitInitialEndpoints()) .containsExactly(Endpoint.of("foo.com", 8080).withIpAddr("1.1.1.1")); }/*from w w w . j a va 2s . co m*/ } }
From source file:com.linecorp.armeria.client.endpoint.dns.DnsAddressEndpointGroupTest.java
License:Apache License
@Test public void ipV6Only() throws Exception { try (TestDnsServer server = new TestDnsServer(ImmutableMap.of(new DefaultDnsQuestion("bar.com.", AAAA), new DefaultDnsResponse(0).addRecord(ANSWER, newAddressRecord("bar.com.", "::1")) .addRecord(ANSWER, newAddressRecord("bar.com.", "::1234:5678:90ab")) .addRecord(ANSWER, newAddressRecord("bar.com.", "2404:6800:4004:806::2013"))))) { try (DnsAddressEndpointGroup group = new DnsAddressEndpointGroupBuilder("bar.com").port(8080) .serverAddresses(server.addr()).resolvedAddressTypes(ResolvedAddressTypes.IPV6_ONLY).build()) { assertThat(group.awaitInitialEndpoints()).containsExactly( Endpoint.of("bar.com", 8080).withIpAddr("2404:6800:4004:806::2013"), Endpoint.of("bar.com", 8080).withIpAddr("::1"), Endpoint.of("bar.com", 8080).withIpAddr("::1234:5678:90ab")); }/*w w w.jav a2 s .c o m*/ } }
From source file:com.linecorp.armeria.client.endpoint.dns.DnsAddressEndpointGroupTest.java
License:Apache License
@Test public void ipV4AndIpV6() throws Exception { try (TestDnsServer server = new TestDnsServer(ImmutableMap.of(new DefaultDnsQuestion("baz.com.", A), new DefaultDnsResponse(0).addRecord(ANSWER, newAddressRecord("baz.com.", "1.1.1.1")), new DefaultDnsQuestion("baz.com.", AAAA), new DefaultDnsResponse(0).addRecord(ANSWER, newAddressRecord("baz.com.", "::1"))))) { try (DnsAddressEndpointGroup group = new DnsAddressEndpointGroupBuilder("baz.com").port(8080) .serverAddresses(server.addr()).resolvedAddressTypes(ResolvedAddressTypes.IPV4_PREFERRED) .build()) {/* w ww . j a v a 2 s . c o m*/ assertThat(group.awaitInitialEndpoints()).containsExactly( Endpoint.of("baz.com", 8080).withIpAddr("1.1.1.1"), Endpoint.of("baz.com", 8080).withIpAddr("::1")); } } }
From source file:com.linecorp.armeria.client.endpoint.dns.DnsAddressEndpointGroupTest.java
License:Apache License
@Test public void platformDefault() throws Exception { try (TestDnsServer server = new TestDnsServer(ImmutableMap.of(new DefaultDnsQuestion("baz.com.", A), new DefaultDnsResponse(0).addRecord(ANSWER, newAddressRecord("baz.com.", "1.1.1.1")), new DefaultDnsQuestion("baz.com.", AAAA), new DefaultDnsResponse(0).addRecord(ANSWER, newAddressRecord("baz.com.", "::1"))))) { try (DnsAddressEndpointGroup group = new DnsAddressEndpointGroupBuilder("baz.com").port(8080) .serverAddresses(server.addr()).build()) { assertThat(group.awaitInitialEndpoints()) .contains(Endpoint.of("baz.com", 8080).withIpAddr("1.1.1.1")); }/*from ww w . j av a 2 s . c o m*/ } }
From source file:com.linecorp.armeria.client.endpoint.dns.DnsAddressEndpointGroupTest.java
License:Apache License
@Test public void cname() throws Exception { try (TestDnsServer server = new TestDnsServer(ImmutableMap.of(new DefaultDnsQuestion("a.com.", A), new DefaultDnsResponse(0).addRecord(ANSWER, newBadAddressRecord("a.com.", true)) .addRecord(ANSWER, newCnameRecord("a.com.", "b.com.")) .addRecord(ANSWER, newAddressRecord("b.com.", "1.1.1.1")), new DefaultDnsQuestion("a.com.", AAAA), new DefaultDnsResponse(0).addRecord(ANSWER, newBadAddressRecord("a.com.", false)) .addRecord(ANSWER, newCnameRecord("a.com.", "b.com.")) .addRecord(ANSWER, newAddressRecord("b.com.", "::1"))))) { try (DnsAddressEndpointGroup group = new DnsAddressEndpointGroupBuilder("a.com").port(8080) .serverAddresses(server.addr()).resolvedAddressTypes(ResolvedAddressTypes.IPV4_PREFERRED) .build()) {/* w w w.j ava2 s . co m*/ assertThat(group.awaitInitialEndpoints()).containsExactly( Endpoint.of("a.com", 8080).withIpAddr("1.1.1.1"), Endpoint.of("a.com", 8080).withIpAddr("::1")); } } }
From source file:com.linecorp.armeria.client.endpoint.dns.DnsAddressEndpointGroupTest.java
License:Apache License
@Test public void mixedLoopbackAddresses() throws Exception { try (TestDnsServer server = new TestDnsServer(ImmutableMap.of(new DefaultDnsQuestion("foo.com.", A), new DefaultDnsResponse(0).addRecord(ANSWER, newAddressRecord("foo.com.", "127.0.0.1")), new DefaultDnsQuestion("foo.com.", AAAA), new DefaultDnsResponse(0).addRecord(ANSWER, newAddressRecord("foo.com.", "::1"))))) { try (DnsAddressEndpointGroup group = new DnsAddressEndpointGroupBuilder("foo.com").port(8080) .serverAddresses(server.addr()).resolvedAddressTypes(ResolvedAddressTypes.IPV4_PREFERRED) .build()) {//from www . jav a2s.c om assertThat(group.awaitInitialEndpoints()) .containsExactly(Endpoint.of("foo.com", 8080).withIpAddr("127.0.0.1")); } } }
From source file:com.linecorp.armeria.client.endpoint.dns.DnsAddressEndpointGroupTest.java
License:Apache License
@Test public void ipV4MappedOrCompatibleAddresses() throws Exception { try (TestDnsServer server = new TestDnsServer(ImmutableMap.of(new DefaultDnsQuestion("bar.com.", AAAA), new DefaultDnsResponse(0).addRecord(ANSWER, newCompatibleAddressRecord("bar.com.", "1.1.1.1")) .addRecord(ANSWER, newCompatibleAddressRecord("bar.com.", "1.1.1.2")) .addRecord(ANSWER, newMappedAddressRecord("bar.com.", "1.1.1.1")) .addRecord(ANSWER, newMappedAddressRecord("bar.com.", "1.1.1.3"))))) { try (DnsAddressEndpointGroup group = new DnsAddressEndpointGroupBuilder("bar.com").port(8080) .serverAddresses(server.addr()).resolvedAddressTypes(ResolvedAddressTypes.IPV6_ONLY).build()) { assertThat(group.awaitInitialEndpoints()).containsExactly( Endpoint.of("bar.com", 8080).withIpAddr("1.1.1.1"), Endpoint.of("bar.com", 8080).withIpAddr("1.1.1.2"), Endpoint.of("bar.com", 8080).withIpAddr("1.1.1.3")); }// w w w. j ava 2 s . c o m } }
From source file:com.linecorp.armeria.client.endpoint.dns.DnsAddressEndpointGroupTest.java
License:Apache License
@Test public void noPort() throws Exception { try (TestDnsServer server = new TestDnsServer(ImmutableMap.of(new DefaultDnsQuestion("no-port.com.", A), new DefaultDnsResponse(0).addRecord(ANSWER, newAddressRecord("no-port.com", "1.1.1.1"))))) { try (DnsAddressEndpointGroup group = new DnsAddressEndpointGroupBuilder("no-port.com") .serverAddresses(server.addr()).resolvedAddressTypes(ResolvedAddressTypes.IPV4_ONLY).build()) { assertThat(group.awaitInitialEndpoints()) .containsExactly(Endpoint.of("no-port.com").withIpAddr("1.1.1.1")); }/*w w w. j a v a 2 s. co m*/ } }