This is an automated email from the ASF dual-hosted git repository.

lizhimin pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new 58550f074e [ISSUE #7008] Fix the issue of protocol parsing failure 
when using haproxy and tls together (#7009)
58550f074e is described below

commit 58550f074ec101c0a158ede0df1839950e08837a
Author: rongtong <[email protected]>
AuthorDate: Mon Jul 10 14:13:18 2023 +0800

    [ISSUE #7008] Fix the issue of protocol parsing failure when using haproxy 
and tls together (#7009)
---
 .../rocketmq/remoting/netty/NettyRemotingServer.java       | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git 
a/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingServer.java
 
b/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingServer.java
index 94ffd8d07a..445f06cc63 100644
--- 
a/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingServer.java
+++ 
b/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingServer.java
@@ -459,13 +459,13 @@ public class NettyRemotingServer extends 
NettyRemotingAbstract implements Remoti
         }
 
         @Override
-        protected void channelRead0(ChannelHandlerContext ctx, ByteBuf in) {
+        protected void channelRead0(ChannelHandlerContext ctx, ByteBuf 
byteBuf) {
             try {
-                ProtocolDetectionResult<HAProxyProtocolVersion> ha = 
HAProxyMessageDecoder.detectProtocol(in);
-                if (ha.state() == ProtocolDetectionState.NEEDS_MORE_DATA) {
+                ProtocolDetectionResult<HAProxyProtocolVersion> 
detectionResult = HAProxyMessageDecoder.detectProtocol(byteBuf);
+                if (detectionResult.state() == 
ProtocolDetectionState.NEEDS_MORE_DATA) {
                     return;
                 }
-                if (ha.state() == ProtocolDetectionState.DETECTED) {
+                if (detectionResult.state() == 
ProtocolDetectionState.DETECTED) {
                     ctx.pipeline().addAfter(defaultEventExecutorGroup, 
ctx.name(), HA_PROXY_DECODER, new HAProxyMessageDecoder())
                             .addAfter(defaultEventExecutorGroup, 
HA_PROXY_DECODER, HA_PROXY_HANDLER, new HAProxyMessageHandler())
                             .addAfter(defaultEventExecutorGroup, 
HA_PROXY_HANDLER, TLS_MODE_HANDLER, tlsModeHandler);
@@ -481,7 +481,7 @@ public class NettyRemotingServer extends 
NettyRemotingAbstract implements Remoti
                 }
 
                 // Hand over this message to the next .
-                ctx.fireChannelRead(in.retain());
+                ctx.fireChannelRead(byteBuf.retain());
             } catch (Exception e) {
                 log.error("process proxy protocol negotiator failed.", e);
                 throw e;
@@ -503,8 +503,8 @@ public class NettyRemotingServer extends 
NettyRemotingAbstract implements Remoti
         @Override
         protected void channelRead0(ChannelHandlerContext ctx, ByteBuf msg) {
 
-            // Peek the first byte to determine if the content is starting 
with TLS handshake
-            byte b = msg.getByte(0);
+            // Peek the current read index byte to determine if the content is 
starting with TLS handshake
+            byte b = msg.getByte(msg.readerIndex());
 
             if (b == HANDSHAKE_MAGIC_CODE) {
                 switch (tlsMode) {

Reply via email to