From c7ef69d553293776e0ae4ccfccc0c878bc2ded42 Mon Sep 17 00:00:00 2001 From: HimbeerserverDE Date: Wed, 22 Nov 2023 14:57:21 +0100 Subject: deal with valid_lifetime = 0 in reply --- src/client.rs | 9 +++++++-- 1 file 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) -- cgit v1.2.3