From 20fd06082136691911f4e738aa9522b559974356 Mon Sep 17 00:00:00 2001 From: lubeilin <1791778603@qq.com> Date: Sat, 2 Mar 2024 15:50:04 +0800 Subject: [PATCH] =?UTF-8?q?[mio]=20=E6=94=B9=E4=B8=BA=E9=98=BB=E5=A1=9E?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vnt/src/ip_proxy/tcp_proxy.rs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/vnt/src/ip_proxy/tcp_proxy.rs b/vnt/src/ip_proxy/tcp_proxy.rs index 598a014..f2ffb4c 100644 --- a/vnt/src/ip_proxy/tcp_proxy.rs +++ b/vnt/src/ip_proxy/tcp_proxy.rs @@ -5,6 +5,7 @@ use std::os::fd::AsRawFd; #[cfg(windows)] use std::os::windows::io::AsRawSocket; use std::sync::Arc; +use std::time::Duration; use std::{collections::HashMap, io, net::SocketAddr, thread}; use bytes::{BufMut, BytesMut}; @@ -222,7 +223,7 @@ fn accept_handle( mapping.insert(dest_fd, src_fd); } Err(e) => { - log::error!("connect:{:?}", e); + log::error!("connect:{:?} {}->{}", e, addr, dest_addr); } } } @@ -249,13 +250,9 @@ fn tcp_connect(src_port: u16, addr: SocketAddr) -> io::Result { { socket.bind(&SocketAddrV4::new(Ipv4Addr::UNSPECIFIED, 0).into())?; } - socket.set_nonblocking(true)?; let _ = socket.set_nodelay(false); - if let Err(e) = socket.connect(&addr.into()) { - if e.kind() != io::ErrorKind::WouldBlock { - return Err(e); - } - } + socket.connect_timeout(&addr.into(), Duration::from_secs(3))?; + socket.set_nonblocking(true)?; Ok(TcpStream::from_std(socket.into())) }