延迟切换NAT类型

This commit is contained in:
lubeilin
2023-09-03 17:24:25 +08:00
parent c3cff7c5b5
commit a943f5bffc
2 changed files with 9 additions and 2 deletions
+2 -1
View File
@@ -77,10 +77,11 @@ impl Punch {
.await; .await;
} }
if !nat_info.ipv6_addr.ip().is_unspecified() && nat_info.ipv6_addr.port() != 0 { if !nat_info.ipv6_addr.ip().is_unspecified() && nat_info.ipv6_addr.port() != 0 {
let _ = self let rs = self
.context .context
.send_main_udp(buf, SocketAddr::V6(nat_info.ipv6_addr)) .send_main_udp(buf, SocketAddr::V6(nat_info.ipv6_addr))
.await; .await;
log::info!("发送到ipv6地址:{:?},rs={:?}", nat_info.ipv6_addr, rs);
} }
match nat_info.nat_type { match nat_info.nat_type {
NatType::Symmetric => { NatType::Symmetric => {
+7 -1
View File
@@ -439,8 +439,14 @@ impl VntUtil {
if let Some(udp_proxy) = udp_proxy { if let Some(udp_proxy) = udp_proxy {
tokio::spawn(udp_proxy.start()); tokio::spawn(udp_proxy.start());
} }
let context = context.clone();
let nat_test = nat_test.clone();
//延迟切换类型,避免无效流量
tokio::spawn(async move {
tokio::time::sleep(Duration::from_secs(15)).await;
context.switch(nat_test.nat_info().nat_type);
});
} }
context.switch(nat_test.nat_info().nat_type);
Ok(Vnt { Ok(Vnt {
config: self.config, config: self.config,
current_device, current_device,