From cf52fdde57b746201be18089f69134b946bb414e Mon Sep 17 00:00:00 2001 From: lubeilin <1791778603@qq.com> Date: Sun, 17 Mar 2024 14:27:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BA=BF=E7=A8=8B=E5=90=8D?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vnt/src/channel/tcp_channel.rs | 4 +-- vnt/src/channel/udp_channel.rs | 4 +-- vnt/src/handle/maintain/re_nat_type.rs | 35 ++++++++++++++------------ vnt/src/handle/tun_tap/tun_handler.rs | 6 ++--- vnt/src/ip_proxy/icmp_proxy.rs | 27 +++++++++++--------- vnt/src/ip_proxy/tcp_proxy.rs | 13 ++++++---- vnt/src/ip_proxy/udp_proxy.rs | 13 ++++++---- vnt/src/util/scheduler.rs | 2 +- 8 files changed, 58 insertions(+), 46 deletions(-) diff --git a/vnt/src/channel/tcp_channel.rs b/vnt/src/channel/tcp_channel.rs index 05f1ec0..34c1d6b 100644 --- a/vnt/src/channel/tcp_channel.rs +++ b/vnt/src/channel/tcp_channel.rs @@ -49,7 +49,7 @@ where }; thread::Builder::new() - .name("tcp读事件处理线程".into()) + .name("tcpRead".into()) .spawn(move || { if let Err(e) = tcp_listen0( poll, @@ -173,7 +173,7 @@ fn init_writable_handler( { let writable_notify = writable_notify.clone(); thread::Builder::new() - .name("tcp-writeable-listen".into()) + .name("tcpWriteableListen".into()) .spawn(move || { if let Err(e) = tcp_writable_listen(receiver, poll, writable_notify, &context) { log::error!("{:?}", e); diff --git a/vnt/src/channel/udp_channel.rs b/vnt/src/channel/udp_channel.rs index 4b3843d..c462aee 100644 --- a/vnt/src/channel/udp_channel.rs +++ b/vnt/src/channel/udp_channel.rs @@ -49,7 +49,7 @@ where }; let accept = AcceptSocketSender::new(waker.clone(), udp_sender); thread::Builder::new() - .name("sub_udp读事件处理线程".into()) + .name("subUdp".into()) .spawn(move || { if let Err(e) = sub_udp_listen0(poll, recv_handler, context, waker, udp_receiver) { log::error!("{:?}", e); @@ -153,7 +153,7 @@ where } })?; thread::Builder::new() - .name("main_udp".into()) + .name("mainUdp".into()) .spawn(move || { if let Err(e) = main_udp_listen0(poll, recv_handler, context) { log::error!("{:?}", e); diff --git a/vnt/src/handle/maintain/re_nat_type.rs b/vnt/src/handle/maintain/re_nat_type.rs index cc8811c..37c8405 100644 --- a/vnt/src/handle/maintain/re_nat_type.rs +++ b/vnt/src/handle/maintain/re_nat_type.rs @@ -25,21 +25,24 @@ fn retrieve_nat_type0( nat_test: NatTest, udp_socket_sender: AcceptSocketSender>>, ) { - thread::spawn(move || { - if nat_test.can_update() { - let local_ipv4 = nat::local_ipv4(); - let local_ipv6 = nat::local_ipv6(); - match nat_test.re_test(local_ipv4, local_ipv6) { - Ok(nat_info) => { - log::info!("当前nat信息:{:?}", nat_info); - if let Err(e) = context.switch(nat_info.nat_type, &udp_socket_sender) { - log::warn!("{:?}", e); + thread::Builder::new() + .name("natTest".into()) + .spawn(move || { + if nat_test.can_update() { + let local_ipv4 = nat::local_ipv4(); + let local_ipv6 = nat::local_ipv6(); + match nat_test.re_test(local_ipv4, local_ipv6) { + Ok(nat_info) => { + log::info!("当前nat信息:{:?}", nat_info); + if let Err(e) = context.switch(nat_info.nat_type, &udp_socket_sender) { + log::warn!("{:?}", e); + } } - } - Err(e) => { - log::warn!("nat re_test {:?}", e); - } - }; - } - }); + Err(e) => { + log::warn!("nat re_test {:?}", e); + } + }; + } + }) + .expect("natTest"); } diff --git a/vnt/src/handle/tun_tap/tun_handler.rs b/vnt/src/handle/tun_tap/tun_handler.rs index 05dd165..7ebcfe5 100644 --- a/vnt/src/handle/tun_tap/tun_handler.rs +++ b/vnt/src/handle/tun_tap/tun_handler.rs @@ -111,7 +111,7 @@ pub fn start( let client_cipher = client_cipher.clone(); let server_cipher = server_cipher.clone(); thread::Builder::new() - .name(format!("tun_handler_{}", index)) + .name(format!("tunHandler-{}", index)) .spawn(move || { while let Ok((mut buf, len)) = receiver.recv() { #[cfg(not(target_os = "macos"))] @@ -139,7 +139,7 @@ pub fn start( })?; } thread::Builder::new() - .name("tun_handler".into()) + .name("tunHandlerM".into()) .spawn(move || { if let Err(e) = start_multi(stop_manager, device, sender, &mut up_counter) { log::warn!("stop:{}", e); @@ -148,7 +148,7 @@ pub fn start( })?; } else { thread::Builder::new() - .name("tun_handler".into()) + .name("tunHandlerS".into()) .spawn(move || { if let Err(e) = start_simple( stop_manager, diff --git a/vnt/src/ip_proxy/icmp_proxy.rs b/vnt/src/ip_proxy/icmp_proxy.rs index 0cd3f41..3eb8b3b 100644 --- a/vnt/src/ip_proxy/icmp_proxy.rs +++ b/vnt/src/ip_proxy/icmp_proxy.rs @@ -47,18 +47,21 @@ impl IcmpProxy { Arc::new(Mutex::new(HashMap::with_capacity(16))); { let nat_map = nat_map.clone(); - thread::spawn(move || { - if let Err(e) = icmp_proxy( - mio_icmp_socket, - nat_map, - context, - stop_manager, - current_device, - client_cipher, - ) { - log::warn!("icmp_proxy:{:?}", e); - } - }); + thread::Builder::new() + .name("icmpProxy".into()) + .spawn(move || { + if let Err(e) = icmp_proxy( + mio_icmp_socket, + nat_map, + context, + stop_manager, + current_device, + client_cipher, + ) { + log::warn!("icmp_proxy:{:?}", e); + } + }) + .expect("icmpProxy"); } Ok(Self { icmp_socket: Arc::new(std_socket), diff --git a/vnt/src/ip_proxy/tcp_proxy.rs b/vnt/src/ip_proxy/tcp_proxy.rs index fab71c8..5c460e2 100644 --- a/vnt/src/ip_proxy/tcp_proxy.rs +++ b/vnt/src/ip_proxy/tcp_proxy.rs @@ -38,11 +38,14 @@ impl TcpProxy { let port = tcp_listener.local_addr()?.port(); { let nat_map = nat_map.clone(); - thread::spawn(move || { - if let Err(e) = tcp_proxy(tcp_listener, nat_map, stop_manager) { - log::warn!("tcp_proxy:{:?}", e); - } - }); + thread::Builder::new() + .name("tcpProxy".into()) + .spawn(move || { + if let Err(e) = tcp_proxy(tcp_listener, nat_map, stop_manager) { + log::warn!("tcp_proxy:{:?}", e); + } + }) + .expect("tcpProxy"); } Ok(Self { port, nat_map }) } diff --git a/vnt/src/ip_proxy/udp_proxy.rs b/vnt/src/ip_proxy/udp_proxy.rs index 8fa4e35..b93d5a5 100644 --- a/vnt/src/ip_proxy/udp_proxy.rs +++ b/vnt/src/ip_proxy/udp_proxy.rs @@ -40,11 +40,14 @@ impl UdpProxy { let port = udp.local_addr()?.port(); { let nat_map = nat_map.clone(); - thread::spawn(move || { - if let Err(e) = udp_proxy(udp, nat_map, scheduler, stop_manager) { - log::warn!("udp_proxy:{:?}", e); - } - }); + thread::Builder::new() + .name("udpProxy".into()) + .spawn(move || { + if let Err(e) = udp_proxy(udp, nat_map, scheduler, stop_manager) { + log::warn!("udp_proxy:{:?}", e); + } + }) + .expect("udpProxy"); } Ok(Self { port, nat_map }) } diff --git a/vnt/src/util/scheduler.rs b/vnt/src/util/scheduler.rs index 1b4bfdd..3680ea8 100644 --- a/vnt/src/util/scheduler.rs +++ b/vnt/src/util/scheduler.rs @@ -52,7 +52,7 @@ impl Scheduler { run(receiver, s_inner); worker.stop_all(); }) - .unwrap(); + .expect("Scheduler"); Ok(s) } pub fn timeout(&self, time: Duration, f: F) -> bool