From 0de57f2e49a1aeeb47cf82ece0b0ad158f477da7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96zg=C3=BCr=20Kesim?= Date: Mon, 31 Jan 2022 17:35:56 +0100 Subject: [PATCH] fix ipv6 showing --- src/config/local_ip.rs | 4 ++++ src/utils/local_ip.rs | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/config/local_ip.rs b/src/config/local_ip.rs index 8b3b63a..6ee2443 100644 --- a/src/config/local_ip.rs +++ b/src/config/local_ip.rs @@ -5,6 +5,8 @@ use std::default::Default; pub struct LocalIp { pub icon: String, pub enabled: bool, + pub show4: bool, + pub show6: bool, pub delay: f64, pub interface: String, } @@ -14,6 +16,8 @@ impl Default for LocalIp { LocalIp { icon: String::from(""), enabled: false, + show4: true, + show6: false, delay: 120.0, interface: String::from("wlan0"), } diff --git a/src/utils/local_ip.rs b/src/utils/local_ip.rs index 07f5c19..f42dc61 100644 --- a/src/utils/local_ip.rs +++ b/src/utils/local_ip.rs @@ -5,8 +5,8 @@ pub async fn get_local_ip() -> ThreadsData { let addrs = nix::ifaddrs::getifaddrs().unwrap(); let mut ip = String::new(); let mut ip6 = String::new(); - let mut found4 = false; - let mut found6 = false; + let mut found4 = !CONFIG.local_ip.show4; + let mut found6 = !CONFIG.local_ip.show4; for ifaddr in addrs { match ifaddr.address { Some(address) => { @@ -15,12 +15,20 @@ pub async fn get_local_ip() -> ThreadsData { match address.family() { nix::sys::socket::AddressFamily::Inet => { if found4 { continue; } - ip = address.to_string().split(':').next().unwrap().to_string(); + ip = if CONFIG.local_ip.show4 { + address.to_string().split(':').next().unwrap().to_string() + } else { + String::from(" ") + }; found4 = true; } nix::sys::socket::AddressFamily::Inet6 => { if found6 { continue; } - ip6 = address.to_string().rsplit_once(':').unwrap().0.to_string(); + ip6 = if CONFIG.local_ip.show6 { + address.to_string().rsplit_once(':').unwrap().0.to_string() + } else { + String::from(" ") + }; found6 = true; } _ => continue,