ipn{,/local},cmd/tailscale: add "sync" flag and pref to disable control map poll

For manual (human) testing, this lets the user disable control plane
map polls with "tailscale set --sync=false" (which survives restarts)
and "tailscale set --sync" to restore.

A high severity health warning is shown while this is active.

Updates #12639
Updates #17945

Change-Id: I83668fa5de3b5e5e25444df0815ec2a859153a6d
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2025-11-17 08:06:16 -08:00
committed by Brad Fitzpatrick
parent 165a24744e
commit f1cddc6ecf
10 changed files with 136 additions and 6 deletions
+4 -2
View File
@@ -1129,10 +1129,12 @@ func TestProfileStateChangeCallback(t *testing.T) {
}
gotChanges := make([]stateChange, 0, len(tt.wantChanges))
pm.StateChangeHook = func(profile ipn.LoginProfileView, prefs ipn.PrefsView, sameNode bool) {
pm.StateChangeHook = func(profile ipn.LoginProfileView, prefView ipn.PrefsView, sameNode bool) {
prefs := prefView.AsStruct()
prefs.Sync = prefs.Sync.Normalized()
gotChanges = append(gotChanges, stateChange{
Profile: profile.AsStruct(),
Prefs: prefs.AsStruct(),
Prefs: prefs,
SameNode: sameNode,
})
}