aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0160-revert-serverside-behavior-of-keepalives.patch
diff options
context:
space:
mode:
authorJake <[email protected]>2021-11-23 17:09:49 -0800
committerMiniDigger | Martin <[email protected]>2021-11-30 19:26:33 +0100
commite481692afdb08c4486866bc856919c585d6d9646 (patch)
tree66774ecbddc504c3b0fb9460139b6dc8c367d03d /patches/server/0160-revert-serverside-behavior-of-keepalives.patch
parent7665ae86d65b964822b307c085fc86c0fcc442f2 (diff)
downloadPaper-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.patch77
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