diff --git a/vnt-cli/src/callback.rs b/vnt-cli/src/callback.rs index 111bc7e..72698c7 100644 --- a/vnt-cli/src/callback.rs +++ b/vnt-cli/src/callback.rs @@ -1,5 +1,7 @@ use std::process; +use console::style; + use vnt::handle::callback::ConnectInfo; use vnt::{DeviceInfo, ErrorInfo, HandshakeInfo, RegisterInfo, VntCallback}; @@ -8,7 +10,7 @@ pub struct VntHandler {} impl VntCallback for VntHandler { fn success(&self) { - println!(" ====== Connect Successfully ====== ") + println!(" {} ", style("====== Connect Successfully ======").green()) } fn create_tun(&self, info: DeviceInfo) { println!("create_tun {}", info) @@ -24,12 +26,12 @@ impl VntCallback for VntHandler { } fn register(&self, info: RegisterInfo) -> bool { - println!("register {}", info); + println!("register {}", style(info).green()); true } fn error(&self, info: ErrorInfo) { - println!("error {}", info); + println!("{}", style(format!("error {}", info)).red()); } fn stop(&self) { diff --git a/vnt/src/handle/callback.rs b/vnt/src/handle/callback.rs index 8a432e7..aeac7d5 100644 --- a/vnt/src/handle/callback.rs +++ b/vnt/src/handle/callback.rs @@ -165,6 +165,7 @@ pub enum ErrorType { AddressExhausted, IpAlreadyExists, InvalidIp, + LocalIpExists, Unknown, } @@ -176,7 +177,8 @@ impl Into for ErrorType { ErrorType::AddressExhausted => 3, ErrorType::IpAlreadyExists => 4, ErrorType::InvalidIp => 5, - ErrorType::Unknown => 6, + ErrorType::LocalIpExists => 6, + ErrorType::Unknown => 255, } } } diff --git a/vnt/src/handle/recv_data/server.rs b/vnt/src/handle/recv_data/server.rs index 2207db9..bbe2cc7 100644 --- a/vnt/src/handle/recv_data/server.rs +++ b/vnt/src/handle/recv_data/server.rs @@ -262,7 +262,7 @@ impl ServerPacketHandler { } if let Err(e) = self.device.set_ip(virtual_ip, virtual_netmask) { self.callback.error(ErrorInfo::new_msg( - ErrorType::Unknown, + ErrorType::LocalIpExists, format!("set_ip {:?}", e), )); return Ok(());