diff --git a/proxy/src/main/java/net/md_5/bungee/BungeeCord.java b/proxy/src/main/java/net/md_5/bungee/BungeeCord.java index 484671f9..ef63068d 100644 --- a/proxy/src/main/java/net/md_5/bungee/BungeeCord.java +++ b/proxy/src/main/java/net/md_5/bungee/BungeeCord.java @@ -280,7 +280,7 @@ public class BungeeCord extends ProxyServer } } }; - new RemoteQuery( this, info ).start( new InetSocketAddress( info.getHost().getAddress(), info.getQueryPort() ), eventLoops, bindListener ); + new RemoteQuery( this, info ).start(PipelineUtils.getDatagramChannel(), new InetSocketAddress( info.getHost().getAddress(), info.getQueryPort() ), eventLoops, bindListener ); } } } diff --git a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java index 8239799f..c1afcbd2 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java @@ -7,10 +7,12 @@ import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.netty.channel.ServerChannel; +import io.netty.channel.epoll.EpollDatagramChannel; import io.netty.channel.epoll.EpollEventLoopGroup; import io.netty.channel.epoll.EpollServerSocketChannel; import io.netty.channel.epoll.EpollSocketChannel; import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.nio.NioDatagramChannel; import io.netty.channel.socket.nio.NioServerSocketChannel; import io.netty.channel.socket.nio.NioSocketChannel; import io.netty.handler.timeout.ReadTimeoutHandler; @@ -114,6 +116,11 @@ public class PipelineUtils { return epoll ? EpollSocketChannel.class : NioSocketChannel.class; } + + public static Class getDatagramChannel() + { + return epoll ? EpollDatagramChannel.class : NioDatagramChannel.class; + } public final static class Base extends ChannelInitializer { diff --git a/query/src/main/java/net/md_5/bungee/query/RemoteQuery.java b/query/src/main/java/net/md_5/bungee/query/RemoteQuery.java index 43b02753..8becc26a 100644 --- a/query/src/main/java/net/md_5/bungee/query/RemoteQuery.java +++ b/query/src/main/java/net/md_5/bungee/query/RemoteQuery.java @@ -1,9 +1,9 @@ package net.md_5.bungee.query; import io.netty.bootstrap.Bootstrap; +import io.netty.channel.Channel; import io.netty.channel.ChannelFutureListener; import io.netty.channel.EventLoopGroup; -import io.netty.channel.socket.nio.NioDatagramChannel; import java.net.InetSocketAddress; import lombok.RequiredArgsConstructor; import net.md_5.bungee.api.ProxyServer; @@ -16,10 +16,10 @@ public class RemoteQuery private final ProxyServer bungee; private final ListenerInfo listener; - public void start(InetSocketAddress address, EventLoopGroup eventLoop, ChannelFutureListener future) + public void start(Class channel, InetSocketAddress address, EventLoopGroup eventLoop, ChannelFutureListener future) { new Bootstrap() - .channel( NioDatagramChannel.class ) + .channel( channel ) .group( eventLoop ) .handler( new QueryHandler( bungee, listener ) ) .localAddress( address )