Skip to content

Commit b4c0625

Browse files
authored
NumberFormatException thrown when creating DNS Client with IPv6 address (#5753)
See #5745 Separator for address:port is the last one when using IPv6 addresses Signed-off-by: Thomas Segismont <[email protected]>
1 parent 4eca1c7 commit b4c0625

File tree

2 files changed

+24
-18
lines changed

2 files changed

+24
-18
lines changed

vertx-core/src/main/java/io/vertx/core/dns/impl/DnsAddressResolverProvider.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
import io.netty.resolver.*;
1717
import io.netty.resolver.dns.*;
1818
import io.netty.util.NetUtil;
19-
import io.vertx.core.*;
19+
import io.vertx.core.Future;
20+
import io.vertx.core.Promise;
21+
import io.vertx.core.VertxException;
2022
import io.vertx.core.buffer.Buffer;
2123
import io.vertx.core.dns.AddressResolverOptions;
2224
import io.vertx.core.internal.ContextInternal;
@@ -57,9 +59,9 @@ public static DnsAddressResolverProvider create(VertxInternal vertx, AddressReso
5759

5860
private DnsAddressResolverProvider(VertxInternal vertx, AddressResolverOptions options) {
5961
List<String> dnsServers = options.getServers();
60-
if (dnsServers != null && dnsServers.size() > 0) {
62+
if (dnsServers != null && !dnsServers.isEmpty()) {
6163
for (String dnsServer : dnsServers) {
62-
int sep = dnsServer.indexOf(':');
64+
int sep = dnsServer.lastIndexOf(':');
6365
String ipAddress;
6466
int port;
6567
if (sep != -1) {

vertx-core/src/test/java/io/vertx/tests/dns/DNSTest.java

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,30 @@
1111

1212
package io.vertx.tests.dns;
1313

14-
import static io.vertx.test.core.TestUtils.assertNullPointerException;
15-
16-
import java.net.InetSocketAddress;
17-
import java.util.Collections;
18-
import java.util.SortedMap;
19-
import java.util.TreeMap;
20-
import java.util.concurrent.CountDownLatch;
21-
import java.util.function.Function;
22-
2314
import io.netty.resolver.dns.DnsNameResolverTimeoutException;
15+
import io.vertx.core.Vertx;
16+
import io.vertx.core.VertxException;
17+
import io.vertx.core.VertxOptions;
2418
import io.vertx.core.dns.DnsClient;
2519
import io.vertx.core.dns.DnsClientOptions;
2620
import io.vertx.core.dns.MxRecord;
2721
import io.vertx.core.dns.SrvRecord;
2822
import io.vertx.test.core.TestUtils;
2923
import io.vertx.test.core.VertxTestBase;
24+
import io.vertx.test.fakedns.FakeDNSServer;
25+
import io.vertx.test.netty.TestLoggerFactory;
3026
import org.apache.directory.server.dns.messages.DnsMessage;
3127
import org.apache.directory.server.dns.store.RecordStore;
32-
import org.junit.Ignore;
3328
import org.junit.Test;
3429

35-
import io.vertx.core.Vertx;
36-
import io.vertx.core.VertxException;
37-
import io.vertx.core.VertxOptions;
38-
import io.vertx.test.fakedns.FakeDNSServer;
39-
import io.vertx.test.netty.TestLoggerFactory;
30+
import java.net.InetSocketAddress;
31+
import java.util.Collections;
32+
import java.util.SortedMap;
33+
import java.util.TreeMap;
34+
import java.util.concurrent.CountDownLatch;
35+
import java.util.function.Function;
36+
37+
import static io.vertx.test.core.TestUtils.assertNullPointerException;
4038

4139
/**
4240
* @author <a href="mailto:[email protected]">Norman Maurer</a>
@@ -565,6 +563,12 @@ public void testClose() throws Exception {
565563
await();
566564
}
567565

566+
@Test
567+
public void testIpv6NameServer() {
568+
// We just want to verify that we can create a client with an IPv6 address as DNS server
569+
vertx.createDnsClient(new DnsClientOptions().setPort(53).setHost("::1"));
570+
}
571+
568572
private DnsClient prepareDns() throws Exception {
569573
return prepareDns(new DnsClientOptions().setQueryTimeout(15000));
570574
}

0 commit comments

Comments
 (0)