fix: filter out expired DHCP leases from table (keep pinned)
This commit is contained in:
parent
cad0458f1e
commit
efeb993d20
1 changed files with 8 additions and 1 deletions
|
|
@ -205,7 +205,7 @@ func reloadDnsmasq() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// getAllLeases returns merged active and pinned lease info.
|
||||
// getAllLeases returns merged active (non-expired) and pinned lease info.
|
||||
func getAllLeases() ([]LeaseEntry, error) {
|
||||
activeLeases, err := parseLeases()
|
||||
if err != nil {
|
||||
|
|
@ -217,8 +217,15 @@ func getAllLeases() ([]LeaseEntry, error) {
|
|||
return nil, fmt.Errorf("parse pinned: %w", err)
|
||||
}
|
||||
|
||||
now := time.Now()
|
||||
entries := make([]LeaseEntry, 0, len(activeLeases))
|
||||
for _, lease := range activeLeases {
|
||||
// Skip expired leases (expiry is in the past and not pinned).
|
||||
if lease.Expiry.Before(now) {
|
||||
if _, ok := pinned[lease.MAC]; !ok {
|
||||
continue
|
||||
}
|
||||
}
|
||||
status := PinStatusActive
|
||||
if _, ok := pinned[lease.MAC]; ok {
|
||||
status = PinStatusPermanent
|
||||
|
|
|
|||
Loading…
Reference in a new issue