mirror of
https://github.com/tailscale/tailscale.git
synced 2025-08-14 06:57:31 +00:00
feature,ipn/ipnlocal: add profileManager.StateChangeHook
We update profileManager to allow registering a single state (profile+prefs) change hook. This is to invert the dependency between the profileManager and the LocalBackend, so that instead of LocalBackend asking profileManager for the state, we can have profileManager call LocalBackend when the state changes. We also update feature.Hook with a new (*feature.Hook).GetOk method to avoid calling both IsSet and Get. Updates tailscale/corp#28014 Updates #12614 Signed-off-by: Nick Khyl <nickk@tailscale.com>
This commit is contained in:
@@ -53,6 +53,12 @@ func (h *Hook[Func]) Get() Func {
|
||||
return h.f
|
||||
}
|
||||
|
||||
// GetOk returns the hook function and true if it has been set,
|
||||
// otherwise its zero value and false.
|
||||
func (h *Hook[Func]) GetOk() (f Func, ok bool) {
|
||||
return h.f, h.ok
|
||||
}
|
||||
|
||||
// Hooks is a slice of funcs.
|
||||
//
|
||||
// As opposed to a single Hook, this is meant to be used when
|
||||
|
Reference in New Issue
Block a user