Skip to content

Commit

Permalink
Rework a bit the AddressResolver to use the correct event loop
Browse files Browse the repository at this point in the history
  • Loading branch information
vietj committed Jun 22, 2016
1 parent a6fdcf7 commit d76bf3d
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
Expand Up @@ -88,6 +88,13 @@ public DnsNameResolverBuilder(EventLoop eventLoop) {
this.eventLoop = eventLoop;
}

/**
* Convenience method added for Vert.x
*/
public DnsNameResolverBuilder() {
this.eventLoop = null;
}

/**
* Sets the {@link ChannelFactory} that will create a {@link DatagramChannel}.
*
Expand Down Expand Up @@ -349,6 +356,15 @@ public DnsNameResolverBuilder ndots(int ndots) {
* @return a {@link DnsNameResolver}
*/
public DnsNameResolver build() {
return build(eventLoop);
}

/**
* Convenience method added for Vert.x
*
* @return a {@link DnsNameResolver}
*/
public DnsNameResolver build(EventLoop eventLoop) {

if (resolveCache != null && (minTtl != null || maxTtl != null || negativeTtl != null)) {
throw new IllegalStateException("resolveCache and TTLs are mutually exclusive");
Expand Down
7 changes: 3 additions & 4 deletions src/main/java/io/vertx/core/impl/AddressResolver.java
Expand Up @@ -16,6 +16,7 @@

package io.vertx.core.impl;

import io.netty.channel.EventLoop;
import io.netty.channel.socket.nio.NioDatagramChannel;
import io.netty.resolver.AddressResolverGroup;
import io.netty.resolver.DefaultAddressResolverGroup;
Expand All @@ -32,7 +33,6 @@
import io.vertx.core.dns.AddressResolverOptions;
import io.vertx.core.dns.impl.fix.DnsNameResolver;
import io.vertx.core.dns.impl.fix.DnsNameResolverBuilder;
import io.vertx.core.json.JsonObject;

import java.io.File;
import java.io.IOException;
Expand All @@ -41,7 +41,6 @@
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

Expand All @@ -59,7 +58,7 @@ public class AddressResolver {
public AddressResolver(VertxImpl vertx, AddressResolverOptions options) {

if (!DISABLE_DNS_RESOLVER) {
DnsNameResolverBuilder builder = new DnsNameResolverBuilder(vertx.createEventLoopContext(null, null, new JsonObject(), Thread.currentThread().getContextClassLoader()).nettyEventLoop());
DnsNameResolverBuilder builder = new DnsNameResolverBuilder(null);
builder.channelType(NioDatagramChannel.class);
if (options != null) {
List<String> dnsServers = options.getServers();
Expand Down Expand Up @@ -133,7 +132,7 @@ public AddressResolver(VertxImpl vertx, AddressResolverOptions options) {
resolverGroup = new AddressResolverGroup<InetSocketAddress>() {
@Override
protected io.netty.resolver.AddressResolver<InetSocketAddress> newResolver(EventExecutor executor) throws Exception {
DnsNameResolver resolver = builder.build();
DnsNameResolver resolver = builder.build((EventLoop) executor);
return new InetSocketAddressResolver(executor, resolver) {
@Override
public void close() {
Expand Down

0 comments on commit d76bf3d

Please sign in to comment.