aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0115-Cache-user-authenticator-threads.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0115-Cache-user-authenticator-threads.patch')
-rw-r--r--patches/server/0115-Cache-user-authenticator-threads.patch64
1 files changed, 64 insertions, 0 deletions
diff --git a/patches/server/0115-Cache-user-authenticator-threads.patch b/patches/server/0115-Cache-user-authenticator-threads.patch
new file mode 100644
index 0000000000..af62d4792e
--- /dev/null
+++ b/patches/server/0115-Cache-user-authenticator-threads.patch
@@ -0,0 +1,64 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Alfie Cleveland <[email protected]>
+Date: Fri, 25 Nov 2016 13:22:40 +0000
+Subject: [PATCH] Cache user authenticator threads
+
+
+diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+index 7beda9a16addb2dbcd4bdc45e58b343e91323af5..d342d569eb93707bc683c3373ea88ae6b885a476 100644
+--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
++++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+@@ -69,6 +69,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
+ // CraftBukkit end
+ private static final AtomicInteger UNIQUE_THREAD_ID = new AtomicInteger(0);
+ static final Logger LOGGER = LogUtils.getLogger();
++ private static final java.util.concurrent.ExecutorService authenticatorPool = java.util.concurrent.Executors.newCachedThreadPool(new com.google.common.util.concurrent.ThreadFactoryBuilder().setNameFormat("User Authenticator #%d").setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(LOGGER)).build()); // Paper - Cache authenticator threads
+ private static final int MAX_TICKS_BEFORE_LOGIN = 600;
+ private final byte[] challenge;
+ final MinecraftServer server;
+@@ -167,7 +168,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
+ this.connection.send(new ClientboundHelloPacket("", this.server.getKeyPair().getPublic().getEncoded(), this.challenge, true));
+ } else {
+ // CraftBukkit start
+- Thread thread = new Thread("User Authenticator #" + ServerLoginPacketListenerImpl.UNIQUE_THREAD_ID.incrementAndGet()) {
++ // Paper start - Cache authenticator threads
++ authenticatorPool.execute(new Runnable() {
+
+ @Override
+ public void run() {
+@@ -182,10 +184,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
+ ServerLoginPacketListenerImpl.this.server.server.getLogger().log(java.util.logging.Level.WARNING, "Exception verifying " + ServerLoginPacketListenerImpl.this.requestedUsername, ex);
+ }
+ }
+- };
+-
+- thread.setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(ServerLoginPacketListenerImpl.LOGGER));
+- thread.start();
++ });
++ // Paper end - Cache authenticator threads
+ // CraftBukkit end
+ }
+
+@@ -264,7 +264,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
+ throw new IllegalStateException("Protocol error", cryptographyexception);
+ }
+
+- Thread thread = new Thread("User Authenticator #" + ServerLoginPacketListenerImpl.UNIQUE_THREAD_ID.incrementAndGet()) {
++ // Paper start - Cache authenticator threads
++ authenticatorPool.execute(new Runnable() {
+ public void run() {
+ String s1 = (String) Objects.requireNonNull(ServerLoginPacketListenerImpl.this.requestedUsername, "Player name not initialized");
+
+@@ -312,10 +313,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
+
+ return ServerLoginPacketListenerImpl.this.server.getPreventProxyConnections() && socketaddress instanceof InetSocketAddress ? ((InetSocketAddress) socketaddress).getAddress() : null;
+ }
+- };
+-
+- thread.setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(ServerLoginPacketListenerImpl.LOGGER));
+- thread.start();
++ });
++ // Paper end - Cache authenticator threads
+ }
+
+ // CraftBukkit start