From 7a4136f8b5aa78912922ac546df6daed7907e9ec Mon Sep 17 00:00:00 2001 From: Aleksandr Krotov Date: Mon, 11 Nov 2024 09:51:52 +0300 Subject: [PATCH] fix: flush local-tun tcp writer half before close (#1759) --- crates/shadowsocks-service/src/local/tun/tcp.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/shadowsocks-service/src/local/tun/tcp.rs b/crates/shadowsocks-service/src/local/tun/tcp.rs index 0e07230d..b5b22d9f 100644 --- a/crates/shadowsocks-service/src/local/tun/tcp.rs +++ b/crates/shadowsocks-service/src/local/tun/tcp.rs @@ -357,7 +357,7 @@ impl TcpTun { } // SHUT_WR - if matches!(control.send_state, TcpSocketState::Close) { + if matches!(control.send_state, TcpSocketState::Close) && socket.send_queue() == 0 && control.send_buffer.is_empty() { trace!("closing TCP Write Half, {:?}", socket.state()); // Close the socket. Set to FIN state