延迟切换NAT类型
This commit is contained in:
@@ -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
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user