mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-16 03:31:39 +00:00
appc: write discovered domains to StateStore
If the controlknob is on. This will allow us to remove discovered routes associated with a particular domain. Updates #11008 Signed-off-by: Fran Bull <fran@tailscale.com>
This commit is contained in:
parent
1bd1b387b2
commit
fea2e73bc1
@ -103,6 +103,18 @@ func (e *AppConnector) ShouldStoreRoutes() bool {
|
|||||||
return e.storeRoutesFunc != nil
|
return e.storeRoutesFunc != nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// storeRoutesLocked takes the current state of the AppConnector and persists it
|
||||||
|
func (e *AppConnector) storeRoutesLocked() error {
|
||||||
|
if !e.ShouldStoreRoutes() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return e.storeRoutesFunc(&RouteInfo{
|
||||||
|
Control: e.controlRoutes,
|
||||||
|
Domains: e.domains,
|
||||||
|
Wildcards: e.wildcards,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// UpdateDomainsAndRoutes starts an asynchronous update of the configuration
|
// UpdateDomainsAndRoutes starts an asynchronous update of the configuration
|
||||||
// given the new domains and routes.
|
// given the new domains and routes.
|
||||||
func (e *AppConnector) UpdateDomainsAndRoutes(domains []string, routes []netip.Prefix) {
|
func (e *AppConnector) UpdateDomainsAndRoutes(domains []string, routes []netip.Prefix) {
|
||||||
@ -199,6 +211,9 @@ nextRoute:
|
|||||||
}
|
}
|
||||||
|
|
||||||
e.controlRoutes = routes
|
e.controlRoutes = routes
|
||||||
|
if err := e.storeRoutesLocked(); err != nil {
|
||||||
|
e.logf("failed to store route info: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Domains returns the currently configured domain list.
|
// Domains returns the currently configured domain list.
|
||||||
@ -409,6 +424,9 @@ func (e *AppConnector) scheduleAdvertisement(domain string, routes ...netip.Pref
|
|||||||
e.logf("[v2] advertised route for %v: %v", domain, addr)
|
e.logf("[v2] advertised route for %v: %v", domain, addr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if err := e.storeRoutesLocked(); err != nil {
|
||||||
|
e.logf("failed to store route info: %v", err)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user