1
0
mirror of https://github.com/juanfont/headscale.git synced 2025-11-10 01:20:58 +01:00

fix: free ips from usedIps ipset on DeleteNode

This commit is contained in:
Andrey Bobelev 2025-10-28 11:19:14 +02:00
parent 2024219bd1
commit cdcdfb7867
No known key found for this signature in database
GPG Key ID: 8BC07FB9FEAEEF63
2 changed files with 11 additions and 0 deletions

View File

@ -337,3 +337,12 @@ func (db *HSDatabase) BackfillNodeIPs(i *IPAllocator) ([]string, error) {
return ret, err
}
func (i *IPAllocator) FreeIPs(ips []netip.Addr) {
i.mu.Lock()
defer i.mu.Unlock()
for _, ip := range ips {
i.usedIPs.Remove(ip)
}
}

View File

@ -423,6 +423,8 @@ func (s *State) DeleteNode(node types.NodeView) (change.ChangeSet, error) {
return change.EmptySet, err
}
s.ipAlloc.FreeIPs(node.IPs())
c := change.NodeRemoved(node.ID())
// Check if policy manager needs updating after node deletion