From c3f134e33224877ea9ebbecef207286a0fd0d8bc Mon Sep 17 00:00:00 2001 From: lubeilin <1791778603@qq.com> Date: Sat, 29 Jul 2023 23:25:39 +0800 Subject: [PATCH] =?UTF-8?q?-o=20=E4=BD=BF=E7=94=A8=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E7=BD=91=E5=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vnt/src/core/mod.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/vnt/src/core/mod.rs b/vnt/src/core/mod.rs index 1936891..1ead5c8 100644 --- a/vnt/src/core/mod.rs +++ b/vnt/src/core/mod.rs @@ -183,12 +183,14 @@ impl VntUtil { let local_port = context.main_local_port()?; // NAT检测 let nat_test = NatTest::new(config.nat_test_server.clone(), response.public_ip, response.public_port, local_ip, local_port); - - let mut out_ips = config.out_ips.iter().map(|(_, _, ip)| *ip).collect::>(); - if out_ips.remove(&Ipv4Addr::UNSPECIFIED) { - out_ips.insert(local_ip); + let mut out_ip_list = config.out_ips; + for (_, _, ip) in out_ip_list.iter_mut() { + if ip == &Ipv4Addr::UNSPECIFIED { + *ip = local_ip; + } } - let out_external_route = ExternalRoute::new(config.out_ips); + let out_ips = out_ip_list.iter().map(|(_, _, ip)| *ip).collect::>(); + let out_external_route = ExternalRoute::new(out_ip_list); let in_external_route = if config.in_ips.is_empty() { None } else {