完善1.2.2

This commit is contained in:
lubeilin
2023-09-03 20:58:48 +08:00
parent a943f5bffc
commit 954f0d2d05
7 changed files with 57 additions and 29 deletions
+1
View File
@@ -29,6 +29,7 @@ pub struct DeviceItem {
pub nat_type: String,
pub public_ips: String,
pub local_ip: String,
pub ipv6: String,
pub nat_traversal_type: String,
pub rt: String,
pub status: String,
+5 -3
View File
@@ -81,16 +81,17 @@ pub fn command_list(vnt: &Vnt) -> Vec<DeviceItem> {
for peer in device_list {
let name = peer.name;
let virtual_ip = peer.virtual_ip.to_string();
let (nat_type, public_ips, local_ip) =
let (nat_type, public_ips, local_ip,ipv6) =
if let Some(nat_info) = vnt.peer_nat_info(&peer.virtual_ip) {
let nat_type = format!("{:?}", nat_info.nat_type);
let public_ips: Vec<String> =
nat_info.public_ips.iter().map(|v| v.to_string()).collect();
let public_ips = public_ips.join(",");
let local_ip = nat_info.local_ipv4_addr.ip().to_string();
(nat_type, public_ips, local_ip)
let ipv6 = nat_info.ipv6_addr.ip().to_string();
(nat_type, public_ips, local_ip,ipv6)
} else {
("".to_string(), "".to_string(), "".to_string())
("".to_string(), "".to_string(), "".to_string(), "".to_string())
};
let (nat_traversal_type, rt) = if let Some(route) = vnt.route(&peer.virtual_ip) {
let nat_traversal_type = if route.metric == 1 {
@@ -118,6 +119,7 @@ pub fn command_list(vnt: &Vnt) -> Vec<DeviceItem> {
nat_type,
public_ips,
local_ip,
ipv6,
nat_traversal_type,
rt,
status,
+4
View File
@@ -125,6 +125,7 @@ pub fn console_device_list_all(mut list: Vec<DeviceItem>) {
("NAT Type".to_string(), Style::new()),
("Public Ips".to_string(), Style::new()),
("Local Ip".to_string(), Style::new()),
("IPv6".to_string(), Style::new()),
]);
for item in list {
if &item.status == "Online" {
@@ -138,6 +139,7 @@ pub fn console_device_list_all(mut list: Vec<DeviceItem>) {
(item.nat_type, Style::new().green()),
(item.public_ips, Style::new().green()),
(item.local_ip, Style::new().green()),
(item.ipv6, Style::new().green()),
]);
} else {
out_list.push(vec![
@@ -149,6 +151,7 @@ pub fn console_device_list_all(mut list: Vec<DeviceItem>) {
(item.nat_type, Style::new().yellow()),
(item.public_ips, Style::new().yellow()),
(item.local_ip, Style::new().yellow()),
(item.ipv6, Style::new().yellow()),
]);
}
} else {
@@ -161,6 +164,7 @@ pub fn console_device_list_all(mut list: Vec<DeviceItem>) {
("".to_string(), Style::new().color256(102)),
("".to_string(), Style::new().color256(102)),
("".to_string(), Style::new().color256(102)),
("".to_string(), Style::new().color256(102)),
]);
}
}
+4 -3
View File
@@ -424,8 +424,9 @@ async fn main0(config: Config, show_cmd: bool) {
}
}
}
#[cfg(unix)]
tokio::select! {
}
#[cfg(unix)]
tokio::select! {
_ = vnt.wait_stop()=>{
return;
}
@@ -439,8 +440,8 @@ async fn main0(config: Config, show_cmd: bool) {
vnt.wait_stop_ms(std::time::Duration::from_secs(3)).await;
return;
}
}
}
#[cfg(windows)]
vnt.wait_stop().await;
}