You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/ipn
Brad Fitzpatrick 3bc10ea585 ipn/ipnext: remove some interface indirection to add hooks
Now that 25c4dc5fd7 removed unregistering hooks and made them into
slices, just expose the slices and remove the setter funcs.

This removes boilerplate ceremony around adding new hooks.

This does export the hooks and make them mutable at runtime in theory,
but that'd be a data race. If we really wanted to lock it down in the
future we could make the feature.Hooks slice type be an opaque struct
with an All() iterator and a "frozen" bool and we could freeze all the
hooks after init. But that doesn't seem worth it.

This means that hook registration is also now all in one place, rather
than being mixed into ProfilesService vs ipnext.Host vs FooService vs
BarService. I view that as a feature. When we have a ton of hooks and
the list is long, then we can rearrange the fields in the Hooks struct
as needed, or make sub-structs, or big comments.

Updates #12614

Change-Id: I05ce5baa45a61e79c04591c2043c05f3288d8587
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
8 months ago
..
auditlog ipn/ipnext: remove some interface indirection to add hooks 8 months ago
conffile ipn/conffile: don't depend on hujson on iOS/Android 1 year ago
desktop ipn/ipnext: remove some interface indirection to add hooks 8 months ago
ipnauth control/controlclient, ipn: add client audit logging (#14950) 10 months ago
ipnext ipn/ipnext: remove some interface indirection to add hooks 8 months ago
ipnlocal ipn/ipnext: remove some interface indirection to add hooks 8 months ago
ipnserver net/netmon: publish events to event bus 8 months ago
ipnstate Revert "ipn/ipnstate: add home DERP to tailscale status JSON" 9 months ago
localapi feature/taildrop: start moving Taildrop out of LocalBackend 8 months ago
policy ipn,tailconfig: clean up unreleased and removed app connector service 2 years ago
store ipn/store/kubestore: skip cache for the write replica in cert share mode (#15417) 9 months ago
backend.go ipn: declare NotifyWatchOpt consts without using iota 12 months ago
conf.go ipn: ensure that conffile is source of truth for advertised services. (#15361) 9 months ago
doc.go ipn: generate LoginProfileView and use it instead of *LoginProfile where appropriate 11 months ago
ipn_clone.go cmd/tailscale,ipn: add relay-server-port "tailscale set" flag and Prefs field (#15594) 9 months ago
ipn_test.go all: do not depend on the testing package 2 years ago
ipn_view.go cmd/tailscale,ipn: add relay-server-port "tailscale set" flag and Prefs field (#15594) 9 months ago
prefs.go ipn, ipn/ipnlocal: reduce coupling between LocalBackend/profileManager and the Windows-specific "current user" model 9 months ago
prefs_test.go cmd/tailscale,ipn: add relay-server-port "tailscale set" flag and Prefs field (#15594) 9 months ago
serve.go tailcfg: add ServiceName 11 months ago
serve_test.go ipn: [serve] warn that foreground funnel won't work if shields are up (#14685) 11 months ago
store.go ipn: add comment about thread-safety to StateStore 2 years ago
store_test.go ipn: avoid useless no-op WriteState calls 2 years ago