aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-11-13 14:31:30 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-11-13 14:33:05 +0100
commite53701c6a8b2d9d7a8c5ced2123829efc4447cb6 (patch)
treed74b169ecef81a3d6ae96e4d797e20d846f3fd07
parentac992e085ace12ed3268f82f02ee97af0321ea99 (diff)
reset restart timer when entering Soliciting state
-rw-r--r--src/client.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/client.rs b/src/client.rs
index 7daf664..fa90fba 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -181,6 +181,8 @@ impl Dhcp6c {
fn up_negative(&mut self) {
if self.state == Dhcp6cState::Starting {
+ self.restart_timer.reset();
+
self.output_tx
.send(Packet::Solicit)
.expect("output channel is closed");
@@ -280,15 +282,20 @@ impl Dhcp6c {
fn expire(&mut self) -> Option<Packet> {
match self.state {
Dhcp6cState::Rebinding => {
+ self.restart_timer.reset();
+
self.upper_status_tx
.send(false)
.expect("upper status channel is closed");
+
self.state = Dhcp6cState::Soliciting;
Some(Packet::Solicit)
}
Dhcp6cState::Rerouting => {
+ self.restart_timer.reset();
self.state = Dhcp6cState::Soliciting;
+
Some(Packet::Solicit)
}
_ => None, // illegal