lbl
1cc71c8d62
fix: TCP 双向转发半关闭时不再截断对端数据
问题:tcp_port_mapping::stream_copy 与 tcp_nat::stream_nat 用
tokio::select! 组合两个 io::copy,任一方向先结束就 drop 另一方向。
客户端半关闭(shutdown 写方向)后,服务端的响应数据会被静默截断。
修复:抽出 copy_bidirectional_split,用 tokio::io::join 合并分离的
读写半部后走 copy_bidirectional——任一方向 EOF 时对另一端 shutdown
并继续转发剩余方向,直到双向完成。
测试:test_half_close_no_truncation 用 duplex 流验证半关闭后响应
完整送达(旧实现此处读到空数据)。
2026-08-20 23:20:06 +08:00
..
2026-02-10 18:20:39 +08:00
2026-08-20 23:20:06 +08:00
2026-02-10 18:20:39 +08:00
2026-08-20 20:58:07 +08:00