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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// getAllLeases returns merged active and pinned lease info.
|
// getAllLeases returns merged active (non-expired) and pinned lease info.
|
||||||
func getAllLeases() ([]LeaseEntry, error) {
|
func getAllLeases() ([]LeaseEntry, error) {
|
||||||
activeLeases, err := parseLeases()
|
activeLeases, err := parseLeases()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -217,8 +217,15 @@ func getAllLeases() ([]LeaseEntry, error) {
|
||||||
return nil, fmt.Errorf("parse pinned: %w", err)
|
return nil, fmt.Errorf("parse pinned: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
now := time.Now()
|
||||||
entries := make([]LeaseEntry, 0, len(activeLeases))
|
entries := make([]LeaseEntry, 0, len(activeLeases))
|
||||||
for _, lease := range 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
|
status := PinStatusActive
|
||||||
if _, ok := pinned[lease.MAC]; ok {
|
if _, ok := pinned[lease.MAC]; ok {
|
||||||
status = PinStatusPermanent
|
status = PinStatusPermanent
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue