aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/config/local_ip.rs4
-rw-r--r--src/utils/local_ip.rs16
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,