diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-11-13 14:31:30 +0100 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-11-13 14:33:05 +0100 |
commit | e53701c6a8b2d9d7a8c5ced2123829efc4447cb6 (patch) | |
tree | d74b169ecef81a3d6ae96e4d797e20d846f3fd07 | |
parent | ac992e085ace12ed3268f82f02ee97af0321ea99 (diff) |
reset restart timer when entering Soliciting state
-rw-r--r-- | src/client.rs | 7 |
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 |