feature/conn25: set assignment expiry based on dns response TTL

Updates tailscale/corp#39975

Signed-off-by: Fran Bull <fran@tailscale.com>
This commit is contained in:
Fran Bull
2026-05-21 07:25:29 -07:00
committed by franbull
parent f3a117e813
commit dbe92f98b5
3 changed files with 107 additions and 10 deletions
+8
View File
@@ -38,6 +38,14 @@ func (a *addrAssignments) insert(as *addrs) error {
return a.insertWithExpiry(as, defaultExpiry)
}
func (a *addrAssignments) insertFromTTL(as *addrs, ttl time.Duration) error {
const minTTL = time.Minute * 1
const maxTTL = time.Hour * 72
expiry := max(minTTL, ttl)
expiry = min(maxTTL, expiry)
return a.insertWithExpiry(as, expiry)
}
func (a *addrAssignments) insertWithExpiry(as *addrs, d time.Duration) error {
now := a.clock.Now()
if !as.expiresAt.IsZero() && !as.expiresAt.Before(now) {