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/ipnlocal
Nick Khyl 824985afe1 feature/taildrop,ipn/ipn{ext,local}: initialize taildrop for initial profile
Currently, LocalBackend/ExtensionHost doesn't invoke the profile change callback for the initial profile.
Since the initial profile may vary depending on loaded extensions and applied policy settings,
it can't be reliably determined until all extensions are initialized. Additionally, some extensions
may asynchronously trigger a switch to the "best" profile (based on system state and policy settings) during
initialization.

We intended to address these issues as part of the ongoing profileManager/LocalBackend refactoring,
but the changes didn't land in time for the v1.84 release and the Taildrop refactoring.

In this PR, we update the Taildrop extension to retrieve the current profile at initialization time
and handle it as a profile change.

We also defer extension initialization until LocalBackend has started, since the Taildrop extension
already relies on this behavior (e.g., it requires clients to call SetDirectFileRoot before Init).

Fixes #15970
Updates #15812
Updates tailscale/corp#28449

Signed-off-by: Nick Khyl <nickk@tailscale.com>
8 months ago
..
testdata ipn/ipnlocal: fix the path for writing cert files (#7203) 3 years ago
autoupdate.go clientupdate: return true for CanAutoUpdate for macsys (#12746) 1 year ago
autoupdate_disabled.go ipn/ipnlocal: periodically run auto-updates when "offline" (#12118) 2 years ago
breaktcp_darwin.go cmd/tailscale: add debug commands to break connections 2 years ago
breaktcp_linux.go cmd/tailscale: add debug commands to break connections 2 years ago
bus.go ipn/ipnlocal: fix build, remove another Notify.BackendLogID reference that crept in 1 year ago
bus_test.go ipn/ipnlocal: add IPN Bus NotifyRateLimit watch bit NotifyRateLimit 1 year ago
c2n.go ipn/ipnlocal: return old hwaddrs if missing 9 months ago
c2n_pprof.go ipn/ipnlocal: add c2n /debug/pprof/allocs endpoint 2 years ago
c2n_test.go util/cmpx: delete now that we're using Go 1.22 2 years ago
cert.go ipn/ipnlocal: include previous cert in new ACME orders (#15595) 9 months ago
cert_js.go ipn/ipnlocal: add c2n method to check on TLS cert fetch status 2 years ago
cert_test.go ipn/ipnlocal, envknob: make it possible to configure the cert client to act in read-only mode (#15250) 10 months ago
dnsconfig_test.go ipn/ipnlocal: add localNodeContext with netmap-related fields and methods 8 months ago
drive.go feature/taildrop: move rest of Taildrop out of LocalBackend 8 months ago
expiry.go all: add Node.HomeDERP int, phase out "127.3.3.40:$region" hack [capver 111] 12 months ago
expiry_test.go cmd/viewer,types/views,various: avoid allocations in pointer field getters whenever possible 12 months ago
extension_host.go feature/taildrop: move rest of Taildrop out of LocalBackend 8 months ago
extension_host_test.go feature/taildrop: move rest of Taildrop out of LocalBackend 8 months ago
local.go feature/taildrop,ipn/ipn{ext,local}: initialize taildrop for initial profile 8 months ago
local_test.go tsnet: add test for packet filter generation from netmap 8 months ago
loglines_test.go net/netmon: publish events to event bus 9 months ago
network-lock.go ipn/ipnlocal: add localNodeContext with netmap-related fields and methods 8 months ago
network-lock_test.go ipn: generate LoginProfileView and use it instead of *LoginProfile where appropriate 11 months ago
node_backend.go ipn/ipnlocal: move nodeBackend methods from local.go to node_backend.go 8 months ago
peerapi.go ipn/ipnlocal: move nodeBackend methods from local.go to node_backend.go 8 months ago
peerapi_h2c.go all: update copyright and license headers 3 years ago
peerapi_macios_ext.go net/netmon, add: add netmon.State type alias of interfaces.State 2 years ago
peerapi_test.go feature/taildrop, ipn/ipnlocal: remove leftover dup calls to osshare 8 months ago
prefs_metrics.go health, ipn/ipnlocal: add metrics for various client events (#15828) 8 months ago
profiles.go health, ipn/ipnlocal: add metrics for various client events (#15828) 8 months ago
profiles_notwindows.go ipn/ipnlocal: refactor and cleanup profileManager 1 year ago
profiles_test.go feature,ipn/ipnlocal: add profileManager.StateChangeHook 8 months ago
profiles_windows.go ipn/ipnlocal: refactor and cleanup profileManager 1 year ago
serve.go ipn/ipnlocal: add localNodeContext with netmap-related fields and methods 8 months ago
serve_test.go ipn/ipnlocal: add localNodeContext with netmap-related fields and methods 8 months ago
ssh.go all: remove non-applicable "linux" deps on Android 8 months ago
ssh_stub.go all: remove non-applicable "linux" deps on Android 8 months ago
ssh_test.go ipn/ipnlocal: plumb health.Tracker into profileManager constructor 2 years ago
state_test.go ipn/ipnlocal: use tsd.NewSystem instead of &tsd.System in a few more tests 8 months ago
web_client.go ipn/ipnlocal: add localNodeContext with netmap-related fields and methods 8 months ago
web_client_stub.go all: use new LocalAPI client package location 11 months ago