aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-07-30 10:00:20 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-07-30 10:00:20 +0200
commit07e04d42496f41873dae456c9dcf5669ecffa687 (patch)
tree3083ce76eb7696c12418745c523e55a0061273f8
parente206629dda98b7848cc556bee8ae418d8eea3cd2 (diff)
only update dsconfig once per iteration
-rw-r--r--src/main.rs51
1 files changed, 17 insertions, 34 deletions
diff --git a/src/main.rs b/src/main.rs
index dea45da..7ef8b33 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -441,6 +441,8 @@ fn session(
*ppp_state = Ppp::Auth(auth_proto.clone(), attempt + 1);
}
Ppp::Active => {
+ let mut update = false;
+
let mut ncps = ncp_states.lock().expect("ncp state mutex is poisoned");
for (ncp, state) in ncps.iter_mut() {
if *state == Ncp::Dead {
@@ -475,8 +477,6 @@ fn session(
}
};
} else if *state == Ncp::Active {
- let mut update = false;
-
match *ncp {
Network::Ipv4 if !ipv4_active => {
ipv4_active = true;
@@ -488,24 +488,7 @@ fn session(
}
_ => {}
}
-
- if update {
- write_dsconfig(
- if ipv4_active {
- config4.clone()
- } else {
- Arc::new(Mutex::new(Ipv4Config::default()))
- },
- if ipv6_active {
- config6.clone()
- } else {
- Arc::new(Mutex::new(Ipv6Config::default()))
- },
- )?;
- }
} else if *state == Ncp::Failed {
- let mut update = false;
-
match *ncp {
Network::Ipv4 if ipv4_active => {
ipv4_active = false;
@@ -517,23 +500,23 @@ fn session(
}
_ => {}
}
-
- if update {
- write_dsconfig(
- if ipv4_active {
- config4.clone()
- } else {
- Arc::new(Mutex::new(Ipv4Config::default()))
- },
- if ipv6_active {
- config6.clone()
- } else {
- Arc::new(Mutex::new(Ipv6Config::default()))
- },
- )?;
- }
}
}
+
+ if update {
+ write_dsconfig(
+ if ipv4_active {
+ config4.clone()
+ } else {
+ Arc::new(Mutex::new(Ipv4Config::default()))
+ },
+ if ipv6_active {
+ config6.clone()
+ } else {
+ Arc::new(Mutex::new(Ipv6Config::default()))
+ },
+ )?;
+ }
}
Ppp::Terminate(ref reason, attempt) => {
if attempt >= MAX_ATTEMPTS {