mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-21 07:09:21 +08:00
Small cleanups to netty
This commit is contained in:
parent
fdd25ff498
commit
53d9d1734b
@ -1,4 +1,4 @@
|
|||||||
From 5c9533473e7a221d24d6aa9a36e43804aae72298 Mon Sep 17 00:00:00 2001
|
From c423a31e3705316ac33d4ebee8557320250cd3a6 Mon Sep 17 00:00:00 2001
|
||||||
From: md_5 <md_5@live.com.au>
|
From: md_5 <md_5@live.com.au>
|
||||||
Date: Tue, 23 Apr 2013 11:47:32 +1000
|
Date: Tue, 23 Apr 2013 11:47:32 +1000
|
||||||
Subject: [PATCH] Netty
|
Subject: [PATCH] Netty
|
||||||
@ -484,16 +484,17 @@ index 0000000..4ff943b
|
|||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/org/spigotmc/netty/NettyNetworkManager.java b/src/main/java/org/spigotmc/netty/NettyNetworkManager.java
|
diff --git a/src/main/java/org/spigotmc/netty/NettyNetworkManager.java b/src/main/java/org/spigotmc/netty/NettyNetworkManager.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..93193fc
|
index 0000000..d6581a0
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/org/spigotmc/netty/NettyNetworkManager.java
|
+++ b/src/main/java/org/spigotmc/netty/NettyNetworkManager.java
|
||||||
@@ -0,0 +1,296 @@
|
@@ -0,0 +1,301 @@
|
||||||
+package org.spigotmc.netty;
|
+package org.spigotmc.netty;
|
||||||
+
|
+
|
||||||
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||||
+import io.netty.channel.Channel;
|
+import io.netty.channel.Channel;
|
||||||
+import io.netty.channel.ChannelHandlerContext;
|
+import io.netty.channel.ChannelHandlerContext;
|
||||||
+import io.netty.channel.ChannelInboundMessageHandlerAdapter;
|
+import io.netty.channel.ChannelInboundMessageHandlerAdapter;
|
||||||
|
+import io.netty.channel.ChannelPromise;
|
||||||
+import io.netty.channel.socket.SocketChannel;
|
+import io.netty.channel.socket.SocketChannel;
|
||||||
+import java.net.InetSocketAddress;
|
+import java.net.InetSocketAddress;
|
||||||
+import java.net.Socket;
|
+import java.net.Socket;
|
||||||
@ -666,12 +667,16 @@ index 0000000..93193fc
|
|||||||
+ {
|
+ {
|
||||||
+ highPriorityQueue.add( packet );
|
+ highPriorityQueue.add( packet );
|
||||||
+
|
+
|
||||||
|
+ ChannelPromise promise;
|
||||||
+ if ( packet instanceof Packet255KickDisconnect )
|
+ if ( packet instanceof Packet255KickDisconnect )
|
||||||
+ {
|
+ {
|
||||||
+ channel.pipeline().get( OutboundManager.class ).flushNow = true;
|
+ promise = channel.voidPromise();
|
||||||
|
+ } else
|
||||||
|
+ {
|
||||||
|
+ promise = channel.newPromise();
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ channel.write( packet, channel.voidPromise() );
|
+ channel.write( packet, promise );
|
||||||
+ if ( packet instanceof Packet252KeyResponse )
|
+ if ( packet instanceof Packet252KeyResponse )
|
||||||
+ {
|
+ {
|
||||||
+ Cipher encrypt = NettyServerConnection.getCipher( Cipher.ENCRYPT_MODE, secret );
|
+ Cipher encrypt = NettyServerConnection.getCipher( Cipher.ENCRYPT_MODE, secret );
|
||||||
@ -786,10 +791,10 @@ index 0000000..93193fc
|
|||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/org/spigotmc/netty/NettyServerConnection.java b/src/main/java/org/spigotmc/netty/NettyServerConnection.java
|
diff --git a/src/main/java/org/spigotmc/netty/NettyServerConnection.java b/src/main/java/org/spigotmc/netty/NettyServerConnection.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..3822a3f
|
index 0000000..575db8b
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/org/spigotmc/netty/NettyServerConnection.java
|
+++ b/src/main/java/org/spigotmc/netty/NettyServerConnection.java
|
||||||
@@ -0,0 +1,91 @@
|
@@ -0,0 +1,100 @@
|
||||||
+package org.spigotmc.netty;
|
+package org.spigotmc.netty;
|
||||||
+
|
+
|
||||||
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||||
@ -803,12 +808,14 @@ index 0000000..3822a3f
|
|||||||
+import io.netty.channel.socket.nio.NioServerSocketChannel;
|
+import io.netty.channel.socket.nio.NioServerSocketChannel;
|
||||||
+import io.netty.handler.timeout.ReadTimeoutHandler;
|
+import io.netty.handler.timeout.ReadTimeoutHandler;
|
||||||
+import java.net.InetAddress;
|
+import java.net.InetAddress;
|
||||||
|
+import java.net.InetSocketAddress;
|
||||||
+import java.security.GeneralSecurityException;
|
+import java.security.GeneralSecurityException;
|
||||||
+import java.security.Key;
|
+import java.security.Key;
|
||||||
+import javax.crypto.Cipher;
|
+import javax.crypto.Cipher;
|
||||||
+import javax.crypto.spec.IvParameterSpec;
|
+import javax.crypto.spec.IvParameterSpec;
|
||||||
+import net.minecraft.server.MinecraftServer;
|
+import net.minecraft.server.MinecraftServer;
|
||||||
+import net.minecraft.server.ServerConnection;
|
+import net.minecraft.server.ServerConnection;
|
||||||
|
+import org.spigotmc.MultiplexingServerConnection;
|
||||||
+
|
+
|
||||||
+/**
|
+/**
|
||||||
+ * This is the NettyServerConnection class. It implements
|
+ * This is the NettyServerConnection class. It implements
|
||||||
@ -821,7 +828,7 @@ index 0000000..3822a3f
|
|||||||
+
|
+
|
||||||
+ private final ChannelFuture socket;
|
+ private final ChannelFuture socket;
|
||||||
+
|
+
|
||||||
+ public NettyServerConnection(MinecraftServer ms, InetAddress host, int port)
|
+ public NettyServerConnection(final MinecraftServer ms, InetAddress host, int port)
|
||||||
+ {
|
+ {
|
||||||
+ super( ms );
|
+ super( ms );
|
||||||
+ int threads = Integer.getInteger( "org.spigotmc.netty.threads", 3 );
|
+ int threads = Integer.getInteger( "org.spigotmc.netty.threads", 3 );
|
||||||
@ -830,6 +837,13 @@ index 0000000..3822a3f
|
|||||||
+ @Override
|
+ @Override
|
||||||
+ public void initChannel(Channel ch) throws Exception
|
+ public void initChannel(Channel ch) throws Exception
|
||||||
+ {
|
+ {
|
||||||
|
+ // Check the throttle
|
||||||
|
+ if ( ( (MultiplexingServerConnection) ms.ae() ).throttle( ( (InetSocketAddress) ch.remoteAddress() ).getAddress() ) )
|
||||||
|
+ {
|
||||||
|
+ ch.close();
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ // Set IP_TOS
|
||||||
+ try
|
+ try
|
||||||
+ {
|
+ {
|
||||||
+ ch.config().setOption( ChannelOption.IP_TOS, 0x18 );
|
+ ch.config().setOption( ChannelOption.IP_TOS, 0x18 );
|
||||||
@ -1183,10 +1197,10 @@ index 0000000..5da8a59
|
|||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/org/spigotmc/netty/OutboundManager.java b/src/main/java/org/spigotmc/netty/OutboundManager.java
|
diff --git a/src/main/java/org/spigotmc/netty/OutboundManager.java b/src/main/java/org/spigotmc/netty/OutboundManager.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..5e7e950
|
index 0000000..44def62
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/org/spigotmc/netty/OutboundManager.java
|
+++ b/src/main/java/org/spigotmc/netty/OutboundManager.java
|
||||||
@@ -0,0 +1,29 @@
|
@@ -0,0 +1,30 @@
|
||||||
+package org.spigotmc.netty;
|
+package org.spigotmc.netty;
|
||||||
+
|
+
|
||||||
+import io.netty.channel.ChannelHandlerContext;
|
+import io.netty.channel.ChannelHandlerContext;
|
||||||
@ -1194,10 +1208,11 @@ index 0000000..5e7e950
|
|||||||
+import io.netty.channel.ChannelPromise;
|
+import io.netty.channel.ChannelPromise;
|
||||||
+import net.minecraft.server.PendingConnection;
|
+import net.minecraft.server.PendingConnection;
|
||||||
+
|
+
|
||||||
+public class OutboundManager extends ChannelOperationHandlerAdapter
|
+class OutboundManager extends ChannelOperationHandlerAdapter
|
||||||
+{
|
+{
|
||||||
+
|
+
|
||||||
+ private static final int FLUSH_TIME = 3;
|
+ private static final int FLUSH_TIME = 2;
|
||||||
|
+ /*========================================================================*/
|
||||||
+ private long lastFlush;
|
+ private long lastFlush;
|
||||||
+ private final NettyNetworkManager manager;
|
+ private final NettyNetworkManager manager;
|
||||||
+ public boolean flushNow = false;
|
+ public boolean flushNow = false;
|
||||||
@ -1209,7 +1224,7 @@ index 0000000..5e7e950
|
|||||||
+
|
+
|
||||||
+ public void flush(ChannelHandlerContext ctx, ChannelPromise promise) throws Exception
|
+ public void flush(ChannelHandlerContext ctx, ChannelPromise promise) throws Exception
|
||||||
+ {
|
+ {
|
||||||
+ if ( flushNow || manager.connection instanceof PendingConnection || System.currentTimeMillis() - lastFlush > FLUSH_TIME )
|
+ if ( promise == ctx.channel().voidPromise() || manager.connection instanceof PendingConnection || System.currentTimeMillis() - lastFlush > FLUSH_TIME )
|
||||||
+ {
|
+ {
|
||||||
+ lastFlush = System.currentTimeMillis();
|
+ lastFlush = System.currentTimeMillis();
|
||||||
+ ctx.flush( promise );
|
+ ctx.flush( promise );
|
||||||
@ -1218,10 +1233,10 @@ index 0000000..5e7e950
|
|||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/org/spigotmc/netty/PacketDecoder.java b/src/main/java/org/spigotmc/netty/PacketDecoder.java
|
diff --git a/src/main/java/org/spigotmc/netty/PacketDecoder.java b/src/main/java/org/spigotmc/netty/PacketDecoder.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..f7c4c65
|
index 0000000..60b75d0
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/org/spigotmc/netty/PacketDecoder.java
|
+++ b/src/main/java/org/spigotmc/netty/PacketDecoder.java
|
||||||
@@ -0,0 +1,69 @@
|
@@ -0,0 +1,68 @@
|
||||||
+package org.spigotmc.netty;
|
+package org.spigotmc.netty;
|
||||||
+
|
+
|
||||||
+import io.netty.buffer.ByteBuf;
|
+import io.netty.buffer.ByteBuf;
|
||||||
@ -1281,9 +1296,8 @@ index 0000000..f7c4c65
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ checkpoint( ReadState.HEADER );
|
+ checkpoint( ReadState.HEADER );
|
||||||
+ Packet ret = packet;
|
+ out.add( packet );
|
||||||
+ packet = null;
|
+ packet = null;
|
||||||
+ out.add( ret );
|
|
||||||
+ break;
|
+ break;
|
||||||
+ default:
|
+ default:
|
||||||
+ throw new IllegalStateException();
|
+ throw new IllegalStateException();
|
||||||
|
Loading…
Reference in New Issue
Block a user