mirror of
https://github.com/tailscale/tailscale.git
synced 2026-05-08 13:46:46 +02:00
add the ability to remove routes associated with domain
This commit is contained in:
parent
26fba734a7
commit
db01cc62e0
@ -111,6 +111,10 @@ func (e *AppConnector) updateDomains(domains []string) {
|
||||
defer e.mu.Unlock()
|
||||
|
||||
var oldDomains map[string][]netip.Addr
|
||||
var oldDiscovered map[string]ipn.DatedRoute
|
||||
routeInfo := e.routeAdvertiser.ReadRouteInfoFromStore()
|
||||
|
||||
oldDiscovered, routeInfo.Discovered = routeInfo.Discovered, make(map[string]ipn.DatedRoute, len(domains))
|
||||
oldDomains, e.domains = e.domains, make(map[string][]netip.Addr, len(domains))
|
||||
e.wildcards = e.wildcards[:0]
|
||||
for _, d := range domains {
|
||||
@ -123,7 +127,9 @@ func (e *AppConnector) updateDomains(domains []string) {
|
||||
continue
|
||||
}
|
||||
e.domains[d] = oldDomains[d]
|
||||
routeInfo.Discovered[d] = oldDiscovered[d]
|
||||
delete(oldDomains, d)
|
||||
delete(oldDiscovered, d)
|
||||
}
|
||||
|
||||
// Ensure that still-live wildcards addresses are preserved as well.
|
||||
@ -135,6 +141,17 @@ func (e *AppConnector) updateDomains(domains []string) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for d, dr := range oldDiscovered {
|
||||
for _, wc := range e.wildcards {
|
||||
if dnsname.HasSuffix(d, wc) {
|
||||
routeInfo.Discovered[d] = dr
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
e.routeAdvertiser.UpdateRoutesInfoToStore(routeInfo)
|
||||
e.logf("handling domains: %v and wildcards: %v", xmaps.Keys(e.domains), e.wildcards)
|
||||
}
|
||||
|
||||
|
||||
@ -3562,6 +3562,8 @@ func (b *LocalBackend) reconfigAppConnectorLocked(nm *netmap.NetworkMap, prefs i
|
||||
slices.SortFunc(routes, func(i, j netip.Prefix) int { return i.Addr().Compare(j.Addr()) })
|
||||
domains = slices.Compact(domains)
|
||||
routes = slices.Compact(routes)
|
||||
fmt.Println("Connector Kevin: ", domains)
|
||||
fmt.Println("Connector Kevin: ", routes)
|
||||
b.appConnector.UpdateDomainsAndRoutes(domains, routes)
|
||||
}
|
||||
|
||||
|
||||
@ -962,8 +962,8 @@ type RouteInfo struct {
|
||||
|
||||
func (r RouteInfo) UpdateRoutesInDiscoveredForDomain(domain string, addrs []netip.Prefix) {
|
||||
newDatedRoutes := make(DatedRoute)
|
||||
_, hasKey := r.Discovered[domain]
|
||||
if !hasKey {
|
||||
val, hasKey := r.Discovered[domain]
|
||||
if !hasKey || val == nil {
|
||||
r.Discovered[domain] = addAddrsToDatedRoute(newDatedRoutes, addrs)
|
||||
return
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user