From 9993f9c8943900ce98ea112be58142a98d1f0f78 Mon Sep 17 00:00:00 2001 From: lbl <1791778603@qq.com> Date: Fri, 21 Aug 2026 02:27:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(quic):=20TCP=20=E8=A7=A3=E6=9E=90=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E4=B8=8D=E5=86=8D=E9=9D=99=E9=BB=98=E4=B8=A2=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit open_quic_client 分支下,非分片 TCP 包若 TcpPacket 解析失败, 原实现 return true 表示"已处理",实际什么都没做——包被静默丢弃, 与文件中非 quic_client 路径(解析失败落到 return false)语义不一致。 改为 return false,把包交还给调用方的其他转发路径。 注:outbound() 依赖真实 IpStack,无法低成本构造单测;clippy 通过。 --- vnt-core/src/enhanced_tunnel/quic_over/quic_outbound.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vnt-core/src/enhanced_tunnel/quic_over/quic_outbound.rs b/vnt-core/src/enhanced_tunnel/quic_over/quic_outbound.rs index 11c212f..98faf02 100644 --- a/vnt-core/src/enhanced_tunnel/quic_over/quic_outbound.rs +++ b/vnt-core/src/enhanced_tunnel/quic_over/quic_outbound.rs @@ -35,7 +35,9 @@ impl EnhancedQuicOutbound { let segmented = more_fragments || offset > 0; if !segmented { let Some(tcp) = TcpPacket::new(ipv4.payload()) else { - return true; + // TCP 解析失败无法判断连接归属,返回 false 让其他 + // 转发路径处理,不能返回 true 静默吞掉这个包 + return false; }; // 不是第一个包 if !(tcp.get_flags() & SYN == SYN && tcp.get_flags() & ACK != ACK) {