aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-11-22 14:57:21 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-11-22 14:57:21 +0100
commitc7ef69d553293776e0ae4ccfccc0c878bc2ded42 (patch)
tree150f9e2be0b6b6b2ccaecadd4c7c5eba5cf05497
parent257741aa3addbb14fa4fa532ac03f1ca4438ad3e (diff)
deal with valid_lifetime = 0 in reply
-rw-r--r--src/client.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/client.rs b/src/client.rs
index e920c63..30e616c 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -371,8 +371,6 @@ impl Dhcp6c {
lease.t2 = lease.valid_lifetime / 2;
}
- // TODO: lft = 0
-
if no_binding {
self.restart_timer.reset();
self.restart_counter = self.max_request;
@@ -383,6 +381,13 @@ impl Dhcp6c {
self.restart_counter -= 1;
self.state = Dhcp6cState::Requesting;
+ } else if lease.valid_lifetime.as_secs() == 0 {
+ self.restart_timer.reset();
+
+ self.output_tx
+ .send(Packet::Solicit)
+ .expect("output channel is closed");
+ self.state = Dhcp6cState::Soliciting;
} else {
self.upper_status_tx
.send(true)