diff options
author | Jake <[email protected]> | 2021-11-23 17:09:49 -0800 |
---|---|---|
committer | MiniDigger | Martin <[email protected]> | 2021-11-30 19:26:33 +0100 |
commit | e481692afdb08c4486866bc856919c585d6d9646 (patch) | |
tree | 66774ecbddc504c3b0fb9460139b6dc8c367d03d /patches/server/0160-revert-serverside-behavior-of-keepalives.patch | |
parent | 7665ae86d65b964822b307c085fc86c0fcc442f2 (diff) | |
download | Paper-e481692afdb08c4486866bc856919c585d6d9646.tar.gz Paper-e481692afdb08c4486866bc856919c585d6d9646.zip |
move extra plugins patch up & more work
Diffstat (limited to 'patches/server/0160-revert-serverside-behavior-of-keepalives.patch')
-rw-r--r-- | patches/server/0160-revert-serverside-behavior-of-keepalives.patch | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/patches/server/0160-revert-serverside-behavior-of-keepalives.patch b/patches/server/0160-revert-serverside-behavior-of-keepalives.patch deleted file mode 100644 index 33f96da52e..0000000000 --- a/patches/server/0160-revert-serverside-behavior-of-keepalives.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Shane Freeder <[email protected]> -Date: Sun, 15 Oct 2017 00:29:07 +0100 -Subject: [PATCH] revert serverside behavior of keepalives - -This patch intends to bump up the time that a client has to reply to the -server back to 30 seconds as per pre 1.12.2, which allowed clients -more than enough time to reply potentially allowing them to be less -tempermental due to lag spikes on the network thread, e.g. that caused -by plugins that are interacting with netty. - -We also add a system property to allow people to tweak how long the server -will wait for a reply. There is a compromise here between lower and higher -values, lower values will mean that dead connections can be closed sooner, -whereas higher values will make this less sensitive to issues such as spikes -from networking or during connections flood of chunk packets on slower clients, - at the cost of dead connections being kept open for longer. - -diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a0cd15635635074b88841a1b43c3a08b9f32e74f..7e80a929bc0ddcf94f27f4febedf10ad07a531ff 100644 ---- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -220,9 +220,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser - private final MinecraftServer server; - public ServerPlayer player; - private int tickCount; -- private long keepAliveTime; @Deprecated private void setLastPing(long lastPing) { this.keepAliveTime = lastPing;}; @Deprecated private long getLastPing() { return this.keepAliveTime;}; // Paper - OBFHELPER -- private boolean keepAlivePending; @Deprecated private void setPendingPing(boolean isPending) { this.keepAlivePending = isPending;}; @Deprecated private boolean isPendingPing() { return this.keepAlivePending;}; // Paper - OBFHELPER -- private long keepAliveChallenge; @Deprecated private void setKeepAliveID(long keepAliveID) { this.keepAliveChallenge = keepAliveID;}; @Deprecated private long getKeepAliveID() {return this.keepAliveChallenge; }; // Paper - OBFHELPER -+ private long keepAliveTime = Util.getMillis(); -+ private boolean keepAlivePending; -+ private long keepAliveChallenge; - // CraftBukkit start - multithreaded fields - private final AtomicInteger chatSpamTickCount = new AtomicInteger(); - // CraftBukkit end -@@ -251,6 +251,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser - private int aboveGroundVehicleTickCount; - private int receivedMovePacketCount; - private int knownMovePacketCount; -+ private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit - - public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player) { - this.server = server; -@@ -333,18 +334,25 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser - } - - this.server.getProfiler().push("keepAlive"); -- long i = Util.getMillis(); -- -- if (i - this.keepAliveTime >= 25000L) { // CraftBukkit -- if (this.keepAlivePending) { -- this.disconnect(new TranslatableComponent("disconnect.timeout")); -- } else { -+ // Paper Start - give clients a longer time to respond to pings as per pre 1.12.2 timings -+ // This should effectively place the keepalive handling back to "as it was" before 1.12.2 -+ long currentTime = Util.getMillis(); -+ long elapsedTime = currentTime - this.keepAliveTime; -+ -+ if (this.keepAlivePending) { -+ if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected -+ ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info -+ this.disconnect(new TranslatableComponent("disconnect.timeout", new Object[0])); -+ } -+ } else { -+ if (elapsedTime >= 15000L) { // 15 seconds - this.keepAlivePending = true; -- this.keepAliveTime = i; -- this.keepAliveChallenge = i; -+ this.keepAliveTime = currentTime; -+ this.keepAliveChallenge = currentTime; - this.send(new ClientboundKeepAlivePacket(this.keepAliveChallenge)); - } - } -+ // Paper end - - this.server.getProfiler().pop(); - // CraftBukkit start |