From bf8397e6e39c1d600ed5c5a5925f3c45d4dd568a Mon Sep 17 00:00:00 2001 From: lubeilin <1791778603@qq.com> Date: Sun, 17 Sep 2023 20:28:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=A3=E7=90=86=E4=B8=8D?= =?UTF-8?q?=E6=AD=A3=E5=B8=B8=E5=85=B3=E9=97=AD=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vnt/src/ip_proxy/tcp_proxy.rs | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/vnt/src/ip_proxy/tcp_proxy.rs b/vnt/src/ip_proxy/tcp_proxy.rs index bead280..bad11f7 100644 --- a/vnt/src/ip_proxy/tcp_proxy.rs +++ b/vnt/src/ip_proxy/tcp_proxy.rs @@ -37,7 +37,7 @@ impl TcpProxy { Duration::from_secs(5), TcpStream::connect(dest_addr), ) - .await + .await { Ok(peer_tcp_stream) => match peer_tcp_stream { Ok(peer_tcp_stream) => peer_tcp_stream, @@ -85,16 +85,9 @@ async fn proxy(mut client: TcpStream, mut server: TcpStream) -> io::Result<()> { let client_to_server = tokio::io::copy(&mut client_reader, &mut server_writer); let server_to_client = tokio::io::copy(&mut server_reader, &mut client_writer); - - let (r1, r2) = tokio::join!( - tokio::time::timeout(Duration::from_secs(10), client_to_server), - tokio::time::timeout(Duration::from_secs(10), server_to_client) - ); - if let Ok(r) = r1 { - r?; - } - if let Ok(r) = r2 { - r?; + tokio::select! { + _ = tokio::time::timeout(Duration::from_secs(10), client_to_server) =>{}, + _ = tokio::time::timeout(Duration::from_secs(10), server_to_client) =>{}, } Ok(()) }