fix(quic): TCP 解析失败不再静默丢包
open_quic_client 分支下,非分片 TCP 包若 TcpPacket 解析失败, 原实现 return true 表示"已处理",实际什么都没做——包被静默丢弃, 与文件中非 quic_client 路径(解析失败落到 return false)语义不一致。 改为 return false,把包交还给调用方的其他转发路径。 注:outbound() 依赖真实 IpStack,无法低成本构造单测;clippy 通过。
This commit is contained in:
@@ -35,7 +35,9 @@ impl EnhancedQuicOutbound {
|
|||||||
let segmented = more_fragments || offset > 0;
|
let segmented = more_fragments || offset > 0;
|
||||||
if !segmented {
|
if !segmented {
|
||||||
let Some(tcp) = TcpPacket::new(ipv4.payload()) else {
|
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) {
|
if !(tcp.get_flags() & SYN == SYN && tcp.get_flags() & ACK != ACK) {
|
||||||
|
|||||||
Reference in New Issue
Block a user