aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-10-11 16:07:46 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-10-11 16:07:46 +0200
commit71305709818d65418a2ee336f6ca062b352b017e (patch)
treeafefe2f74fa91b71a7401fe1497ebe3eb1f0bdb3
parent79e514e0e68d5bda8e580291237691fc0ba797c5 (diff)
only pass relevant state to sub-logic
-rw-r--r--src/main.rs30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/main.rs b/src/main.rs
index eb5986e..9863b09 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -123,26 +123,26 @@ fn main() -> Result<()> {
fn logic(state: &mut AddrState, config: &Config) -> Result<()> {
if let Some(ref config) = config.ipv4 {
- logic_addr4(state, config)?;
+ logic_addr4(&mut state.addr4, config)?;
}
if let Some(ref config) = config.ipv6 {
- logic_addr6(state, config)?;
+ logic_addr6(&mut state.addr6, config)?;
}
if let Some(ref config) = config.net6 {
- logic_net6(state, config)?;
+ logic_net6(&mut state.net6, config)?;
}
Ok(())
}
-fn logic_addr4(state: &mut AddrState, config: &ConfigIpv4) -> Result<()> {
+fn logic_addr4(state: &mut Ipv4Addr, config: &ConfigIpv4) -> Result<()> {
if let Some(addr4) = linkaddrs::ipv4_addresses(config.link.clone())?
.into_iter()
.map(|net| net.addr())
.find(is_ipv4_global)
{
- if addr4 != state.addr4 {
- println!("[info] ipv4 {} => {}", state.addr4, addr4);
+ if addr4 != *state {
+ println!("[info] ipv4 {} => {}", state, addr4);
let user = config.user.clone();
let pass = config.pass.clone();
@@ -169,21 +169,21 @@ fn logic_addr4(state: &mut AddrState, config: &ConfigIpv4) -> Result<()> {
..Default::default()
})?;
- state.addr4 = addr4;
+ *state = addr4;
}
}
Ok(())
}
-fn logic_addr6(state: &mut AddrState, config: &ConfigIpv6) -> Result<()> {
+fn logic_addr6(state: &mut Ipv6Addr, config: &ConfigIpv6) -> Result<()> {
if let Some(addr6) = linkaddrs::ipv6_addresses(config.link.clone())?
.into_iter()
.map(|net| net.addr())
.find(is_ipv6_global)
{
- if addr6 != state.addr6 {
- println!("[info] ipv6 {} => {}", state.addr6, addr6);
+ if addr6 != *state {
+ println!("[info] ipv6 {} => {}", state, addr6);
let user = config.user.clone();
let pass = config.pass.clone();
@@ -210,14 +210,14 @@ fn logic_addr6(state: &mut AddrState, config: &ConfigIpv6) -> Result<()> {
..Default::default()
})?;
- state.addr6 = addr6;
+ *state = addr6;
}
}
Ok(())
}
-fn logic_net6(state: &mut AddrState, config: &ConfigNet6) -> Result<()> {
+fn logic_net6(state: &mut Ipv6Net, config: &ConfigNet6) -> Result<()> {
if let Some(net6) = linkaddrs::ipv6_addresses(config.link.clone())?
.into_iter()
.find(|net| is_ipv6_global(&net.addr()))
@@ -225,8 +225,8 @@ fn logic_net6(state: &mut AddrState, config: &ConfigNet6) -> Result<()> {
// Resize the prefix.
let net6 = Ipv6Net::new(net6.addr(), config.len)?.trunc();
- if net6 != state.net6 {
- println!("[info] net6 {} => {}", state.net6, net6);
+ if net6 != *state {
+ println!("[info] net6 {} => {}", state, net6);
let user = config.user.clone();
let pass = config.pass.clone();
@@ -270,7 +270,7 @@ fn logic_net6(state: &mut AddrState, config: &ConfigNet6) -> Result<()> {
})?;
}
- state.net6 = net6;
+ *state = net6;
}
}