aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorPureGero <[email protected]>2022-06-02 07:58:22 +1000
committerGitHub <[email protected]>2022-06-01 22:58:22 +0100
commit04e1b070ef27c6f575e780635b834d2f6f4b15c7 (patch)
treef3d0c6b0eae12602cc4f6c4a8503455441bc71e6
parent78e6431008d7d896f3b979feb897eecb09f69568 (diff)
downloadPaper-04e1b070ef27c6f575e780635b834d2f6f4b15c7.tar.gz
Paper-04e1b070ef27c6f575e780635b834d2f6f4b15c7.zip
Check HAProxyMessage type is PROXY (#7864)
-rw-r--r--patches/server/0905-Add-support-for-Proxy-Protocol.patch16
1 files changed, 9 insertions, 7 deletions
diff --git a/patches/server/0905-Add-support-for-Proxy-Protocol.patch b/patches/server/0905-Add-support-for-Proxy-Protocol.patch
index 95fd23aaf3..7d940aadba 100644
--- a/patches/server/0905-Add-support-for-Proxy-Protocol.patch
+++ b/patches/server/0905-Add-support-for-Proxy-Protocol.patch
@@ -19,7 +19,7 @@ index 1ac6cf51f2682d5eb14fe19646e79f6617d492dd..fafbebbb5e8c1a381b673f97f1fa2106
+ }
}
diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
-index 058fb3696c7ece4a7b6971886b1760b26add733b..bd378482b82c15cba1eeaa620521ad9ed460a1da 100644
+index 058fb3696c7ece4a7b6971886b1760b26add733b..98286dd27fc3562ca55ec44cc6e5eb5157269942 100644
--- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
+++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
@@ -109,6 +109,12 @@ public class ServerConnectionListener {
@@ -35,7 +35,7 @@ index 058fb3696c7ece4a7b6971886b1760b26add733b..bd378482b82c15cba1eeaa620521ad9e
this.channels.add(((ServerBootstrap) ((ServerBootstrap) (new ServerBootstrap()).channel(oclass)).childHandler(new ChannelInitializer<Channel>() {
protected void initChannel(Channel channel) {
try {
-@@ -122,6 +128,28 @@ public class ServerConnectionListener {
+@@ -122,6 +128,30 @@ public class ServerConnectionListener {
int j = ServerConnectionListener.this.server.getRateLimitPacketsPerSecond();
Object object = j > 0 ? new RateKickingConnection(j) : new Connection(PacketFlow.SERVERBOUND);
@@ -46,13 +46,15 @@ index 058fb3696c7ece4a7b6971886b1760b26add733b..bd378482b82c15cba1eeaa620521ad9e
+ @Override
+ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
+ if (msg instanceof io.netty.handler.codec.haproxy.HAProxyMessage message) {
-+ String realaddress = message.sourceAddress();
-+ int realport = message.sourcePort();
++ if (message.command() == io.netty.handler.codec.haproxy.HAProxyCommand.PROXY) {
++ String realaddress = message.sourceAddress();
++ int realport = message.sourcePort();
+
-+ SocketAddress socketaddr = new java.net.InetSocketAddress(realaddress, realport);
++ SocketAddress socketaddr = new java.net.InetSocketAddress(realaddress, realport);
+
-+ Connection connection = (Connection) channel.pipeline().get("packet_handler");
-+ connection.address = socketaddr;
++ Connection connection = (Connection) channel.pipeline().get("packet_handler");
++ connection.address = socketaddr;
++ }
+ } else {
+ super.channelRead(ctx, msg);
+ }