aboutsummaryrefslogtreecommitdiff
path: root/src/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.rs')
-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