Example usage for io.netty.handler.codec.dns DefaultDnsQuestion DefaultDnsQuestion

List of usage examples for io.netty.handler.codec.dns DefaultDnsQuestion DefaultDnsQuestion

Introduction

In this page you can find the example usage for io.netty.handler.codec.dns DefaultDnsQuestion DefaultDnsQuestion.

Prototype

public DefaultDnsQuestion(String name, DnsRecordType type) 

Source Link

Document

Creates a new #CLASS_IN IN-class question.

Usage

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*/
    }
}