From d7597ce4645921cf7fd2177f2b1d376cecd3bd3b Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 15 May 2024 14:17:52 +0100 Subject: [PATCH] header.pl: Fix parsing BOOTP leases If the lease has been handed out over BOOTP, it will never expire. However, the parser did not account for this case at all which is fixed in this patch. Fixes: #13689 - BOOTP breaks the list of DHCP leases due to erroneous parsing Signed-off-by: Michael Tremer --- config/cfgroot/header.pl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl index 5164e9731..a67ff92ee 100644 --- a/config/cfgroot/header.pl +++ b/config/cfgroot/header.pl @@ -454,12 +454,16 @@ END $hostname = ""; } - if ($line =~ /^\s*ends/) { - $line =~ /(\d+)\/(\d+)\/(\d+) (\d+):(\d+):(\d+)/; + if ($line =~ /^\s*ends \d (\d+)\/(\d+)\/(\d+) (\d+):(\d+):(\d+)/) { $endtime = timegm($6, $5, $4, $3, $2 - 1, $1 - 1900); ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst) = localtime($endtime); $endtime_print = sprintf ("%02d/%02d/%d %02d:%02d:%02d",$mday,$mon+1,$year+1900,$hour,$min,$sec); $expired = $endtime < time(); + + } elsif ($line =~ /^\s*ends never/) { + $endtime = 0; + $endtime_print = $Lang::tr{'never'}; + $expired = 0; } if ($line =~ /^\s*hardware ethernet/) { -- 2.39.5