From fc0abb66f122cc86703aabf3afb945b5458b304b Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20H=C3=A4rdeman?= Date: Thu, 9 Oct 2025 06:35:26 +0200 Subject: [PATCH] dhcpv4: use leasetime from a->lease MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Note that a->leasetime can ever only be zero or == a->lease->leasetime, so simplify this a bit in preparation for the next patch. src/config.c also changes a->leasetime, but always to match a->lease->leasetime. Signed-off-by: David Härdeman Link: https://github.com/openwrt/odhcpd/pull/292 Signed-off-by: Álvaro Fernández Rojas --- src/dhcpv4.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/dhcpv4.c b/src/dhcpv4.c index 372b2d3..56c3831 100644 --- a/src/dhcpv4.c +++ b/src/dhcpv4.c @@ -549,23 +549,20 @@ dhcpv4_lease(struct interface *iface, enum dhcpv4_msg req_msg, const uint8_t *re if (l->hostname) a->hostname = strdup(l->hostname); - if (l->leasetime) - a->leasetime = l->leasetime; - list_add(&a->lease_list, &l->assignments); a->lease = l; } } /* See if we need to clamp the requested leasetime */ - uint32_t my_leasetime; - if (a->leasetime) - my_leasetime = a->leasetime; + uint32_t max_leasetime; + if (a->lease && a->lease->leasetime) + max_leasetime = a->lease->leasetime; else - my_leasetime = iface->dhcp_leasetime; + max_leasetime = iface->dhcp_leasetime; - if ((*req_leasetime == 0) || (my_leasetime < *req_leasetime)) - *req_leasetime = my_leasetime; + if ((*req_leasetime == 0) || (max_leasetime < *req_leasetime)) + *req_leasetime = max_leasetime; if (req_msg == DHCPV4_MSG_DISCOVER) { a->flags &= ~OAF_BOUND; -- 2.30.2