aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0109-Cache-user-authenticator-threads.patch
diff options
context:
space:
mode:
authorNassim Jahnke <[email protected]>2024-12-03 19:05:31 +0100
committerNassim Jahnke <[email protected]>2024-12-03 19:05:31 +0100
commitab9a3db5ba76384531ad52299344dea588a367b2 (patch)
tree7e91be513aa8e62596b332a159691d67f79323c7 /patches/server/0109-Cache-user-authenticator-threads.patch
parent172c7dc7e7ee96fceaa2586d9cd9d892184f9a39 (diff)
downloadPaper-ab9a3db5ba76384531ad52299344dea588a367b2.tar.gz
Paper-ab9a3db5ba76384531ad52299344dea588a367b2.zip
More work
Diffstat (limited to 'patches/server/0109-Cache-user-authenticator-threads.patch')
-rw-r--r--patches/server/0109-Cache-user-authenticator-threads.patch64
1 files changed, 64 insertions, 0 deletions
diff --git a/patches/server/0109-Cache-user-authenticator-threads.patch b/patches/server/0109-Cache-user-authenticator-threads.patch
new file mode 100644
index 0000000000..471804336a
--- /dev/null
+++ b/patches/server/0109-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 8cf3b9f1b7eef2d6278830e21ae012852687e02b..80ac468321a9ccb3486e97b3448dd3fccd8e766e 100644
+--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
++++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+@@ -76,6 +76,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;
+@@ -174,7 +175,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() {
+@@ -189,10 +191,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
+ }
+
+@@ -271,7 +271,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");
+
+@@ -319,10 +320,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