diff --git a/vnt/src/core/mod.rs b/vnt/src/core/mod.rs index 0beba1d..d789be7 100644 --- a/vnt/src/core/mod.rs +++ b/vnt/src/core/mod.rs @@ -1,3 +1,4 @@ +use std::collections::HashSet; use std::io; use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4}; use std::sync::Arc; @@ -183,7 +184,7 @@ impl VntUtil { // NAT检测 let nat_test = NatTest::new(config.nat_test_server.clone(), response.public_ip, response.public_port, local_ip, local_port); - let out_ips = config.out_ips.iter().map(|(_, _, ip)| *ip).collect::>(); + let out_ips = config.out_ips.iter().map(|(_, _, ip)| *ip).collect::>(); let out_external_route = ExternalRoute::new(config.out_ips); let in_external_route = if config.in_ips.is_empty() { None diff --git a/vnt/src/ip_proxy/mod.rs b/vnt/src/ip_proxy/mod.rs index d4a59a0..4f25dc2 100644 --- a/vnt/src/ip_proxy/mod.rs +++ b/vnt/src/ip_proxy/mod.rs @@ -1,5 +1,5 @@ use std::{io, thread}; -use std::collections::HashMap; +use std::collections::{HashMap, HashSet}; use std::net::{Ipv4Addr, SocketAddrV4}; use std::sync::Arc; use crossbeam_utils::atomic::AtomicCell; @@ -45,7 +45,7 @@ impl IpProxyMap { } } -pub async fn init_proxy(sender: ChannelSender, bind_ips: Vec, current_device: Arc>) -> io::Result<(TcpProxy, UdpProxy, IpProxyMap)> { +pub async fn init_proxy(sender: ChannelSender, bind_ips: HashSet, current_device: Arc>) -> io::Result<(TcpProxy, UdpProxy, IpProxyMap)> { let mut icmp_sockets = HashMap::new(); let tcp_proxy_map: Arc> = Arc::new(SkipMap::new()); let udp_proxy_map: Arc> = Arc::new(SkipMap::new());