@ -24,6 +24,7 @@ import (
"tailscale.com/tka"
"tailscale.com/tstest"
"tailscale.com/types/logger"
"tailscale.com/types/opt"
"tailscale.com/types/persist"
"tailscale.com/types/preftype"
"tailscale.com/version/distro"
@ -176,9 +177,10 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "bare_up_means_up" ,
flags : [ ] string { } ,
curPrefs : & ipn . Prefs {
ControlURL : ipn . DefaultControlURL ,
WantRunning : false ,
Hostname : "foo" ,
ControlURL : ipn . DefaultControlURL ,
WantRunning : false ,
Hostname : "foo" ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : "" ,
} ,
@ -186,11 +188,12 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "losing_hostname" ,
flags : [ ] string { "--accept-dns" } ,
curPrefs : & ipn . Prefs {
ControlURL : ipn . DefaultControlURL ,
WantRunning : false ,
Hostname : "foo" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : ipn . DefaultControlURL ,
WantRunning : false ,
Hostname : "foo" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : accidentalUpPrefix + " --accept-dns --hostname=foo" ,
} ,
@ -198,10 +201,11 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "hostname_changing_explicitly" ,
flags : [ ] string { "--hostname=bar" } ,
curPrefs : & ipn . Prefs {
ControlURL : ipn . DefaultControlURL ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
Hostname : "foo" ,
ControlURL : ipn . DefaultControlURL ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
Hostname : "foo" ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : "" ,
} ,
@ -209,10 +213,11 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "hostname_changing_empty_explicitly" ,
flags : [ ] string { "--hostname=" } ,
curPrefs : & ipn . Prefs {
ControlURL : ipn . DefaultControlURL ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
Hostname : "foo" ,
ControlURL : ipn . DefaultControlURL ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
Hostname : "foo" ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : "" ,
} ,
@ -228,10 +233,11 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "implicit_operator_change" ,
flags : [ ] string { "--hostname=foo" } ,
curPrefs : & ipn . Prefs {
ControlURL : ipn . DefaultControlURL ,
OperatorUser : "alice" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : ipn . DefaultControlURL ,
OperatorUser : "alice" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
curUser : "eve" ,
want : accidentalUpPrefix + " --hostname=foo --operator=alice" ,
@ -240,10 +246,11 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "implicit_operator_matches_shell_user" ,
flags : [ ] string { "--hostname=foo" } ,
curPrefs : & ipn . Prefs {
ControlURL : ipn . DefaultControlURL ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
OperatorUser : "alice" ,
ControlURL : ipn . DefaultControlURL ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
OperatorUser : "alice" ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
curUser : "alice" ,
want : "" ,
@ -260,6 +267,7 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
netip . MustParsePrefix ( "0.0.0.0/0" ) ,
netip . MustParsePrefix ( "::/0" ) ,
} ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : accidentalUpPrefix + " --advertise-routes=10.0.42.0/24 --advertise-exit-node" ,
} ,
@ -275,6 +283,7 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
netip . MustParsePrefix ( "0.0.0.0/0" ) ,
netip . MustParsePrefix ( "::/0" ) ,
} ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : "" ,
} ,
@ -290,6 +299,7 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
netip . MustParsePrefix ( "0.0.0.0/0" ) ,
netip . MustParsePrefix ( "::/0" ) ,
} ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : "" ,
} ,
@ -297,9 +307,10 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "advertise_exit_node" , // Issue 1859
flags : [ ] string { "--advertise-exit-node" } ,
curPrefs : & ipn . Prefs {
ControlURL : ipn . DefaultControlURL ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : ipn . DefaultControlURL ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : "" ,
} ,
@ -314,6 +325,7 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
AdvertiseRoutes : [ ] netip . Prefix {
netip . MustParsePrefix ( "1.2.0.0/16" ) ,
} ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : accidentalUpPrefix + " --advertise-exit-node --advertise-routes=1.2.0.0/16" ,
} ,
@ -329,6 +341,7 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
netip . MustParsePrefix ( "::/0" ) ,
netip . MustParsePrefix ( "1.2.0.0/16" ) ,
} ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : accidentalUpPrefix + " --advertise-exit-node --advertise-routes=1.2.0.0/16" ,
} ,
@ -340,7 +353,8 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ExitNodeID : "fooID" ,
ExitNodeID : "fooID" ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : "" ,
} ,
@ -362,8 +376,9 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
netip . MustParsePrefix ( "0.0.0.0/0" ) ,
netip . MustParsePrefix ( "::/0" ) ,
} ,
NetfilterMode : preftype . NetfilterNoDivert ,
OperatorUser : "alice" ,
NetfilterMode : preftype . NetfilterNoDivert ,
OperatorUser : "alice" ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
curUser : "eve" ,
want : accidentalUpPrefix + " --force-reauth --accept-dns=false --accept-routes --advertise-exit-node --advertise-routes=10.0.0.0/16 --advertise-tags=tag:foo,tag:bar --exit-node=100.64.5.6 --hostname=myhostname --netfilter-mode=nodivert --operator=alice --shields-up" ,
@ -384,8 +399,9 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
AdvertiseRoutes : [ ] netip . Prefix {
netip . MustParsePrefix ( "10.0.0.0/16" ) ,
} ,
NetfilterMode : preftype . NetfilterNoDivert ,
OperatorUser : "alice" ,
NetfilterMode : preftype . NetfilterNoDivert ,
OperatorUser : "alice" ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
curUser : "eve" ,
want : accidentalUpPrefix + " --hostname=newhostname --accept-dns=false --accept-routes --advertise-routes=10.0.0.0/16 --advertise-tags=tag:foo,tag:bar --exit-node=100.64.5.6 --netfilter-mode=nodivert --operator=alice --shields-up" ,
@ -394,10 +410,11 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "loggedout_is_implicit" ,
flags : [ ] string { "--hostname=foo" } ,
curPrefs : & ipn . Prefs {
ControlURL : ipn . DefaultControlURL ,
LoggedOut : true ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : ipn . DefaultControlURL ,
LoggedOut : true ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : "" , // not an error. LoggedOut is implicit.
} ,
@ -440,6 +457,7 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
netip . MustParsePrefix ( "::/0" ) ,
netip . MustParsePrefix ( "1.2.0.0/16" ) ,
} ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : accidentalUpPrefix + " --operator=expbits --advertise-exit-node --advertise-routes=1.2.0.0/16" ,
} ,
@ -455,6 +473,7 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
netip . MustParsePrefix ( "::/0" ) ,
netip . MustParsePrefix ( "1.2.0.0/16" ) ,
} ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : accidentalUpPrefix + " --advertise-routes=1.2.0.0/16 --operator=expbits --advertise-exit-node" ,
} ,
@ -467,7 +486,8 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
Hostname : "foo" ,
Hostname : "foo" ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : accidentalUpPrefix + " --auth-key=secretrand --force-reauth=false --reset --hostname=foo" ,
} ,
@ -479,7 +499,8 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ExitNodeIP : netip . MustParseAddr ( "100.64.5.4" ) ,
ExitNodeIP : netip . MustParseAddr ( "100.64.5.4" ) ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : accidentalUpPrefix + " --hostname=foo --exit-node=100.64.5.4" ,
} ,
@ -492,7 +513,8 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ExitNodeID : "some_stable_id" ,
ExitNodeID : "some_stable_id" ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : accidentalUpPrefix + " --hostname=foo --exit-node=100.64.5.7" ,
} ,
@ -507,6 +529,7 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
ExitNodeAllowLANAccess : true ,
ExitNodeID : "some_stable_id" ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : accidentalUpPrefix + " --hostname=foo --exit-node-allow-lan-access --exit-node=100.2.3.4" ,
} ,
@ -514,9 +537,10 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "ignore_login_server_synonym" ,
flags : [ ] string { "--login-server=https://controlplane.tailscale.com" } ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : "" , // not an error
} ,
@ -524,9 +548,10 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "ignore_login_server_synonym_on_other_change" ,
flags : [ ] string { "--netfilter-mode=off" } ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
CorpDNS : false ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
CorpDNS : false ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
want : accidentalUpPrefix + " --netfilter-mode=off --accept-dns=false" ,
} ,
@ -536,10 +561,11 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "synology_permit_omit_accept_routes" ,
flags : [ ] string { "--hostname=foo" } ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
RouteAll : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
RouteAll : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
goos : "linux" ,
distro : distro . Synology ,
@ -551,10 +577,11 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "not_synology_dont_permit_omit_accept_routes" ,
flags : [ ] string { "--hostname=foo" } ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
RouteAll : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
RouteAll : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
goos : "linux" ,
distro : "" , // not Synology
@ -564,10 +591,11 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) {
name : "profile_name_ignored_in_up" ,
flags : [ ] string { "--hostname=foo" } ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ProfileName : "foo" ,
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ProfileName : "foo" ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
goos : "linux" ,
want : "" ,
@ -630,7 +658,7 @@ func TestPrefsFromUpArgs(t *testing.T) {
ControlURL : ipn . DefaultControlURL ,
WantRunning : true ,
NoSNAT : false ,
NoStatefulFiltering : " fals e",
NoStatefulFiltering : " tru e",
NetfilterMode : preftype . NetfilterOn ,
CorpDNS : true ,
AutoUpdate : ipn . AutoUpdatePrefs {
@ -648,7 +676,7 @@ func TestPrefsFromUpArgs(t *testing.T) {
CorpDNS : true ,
RouteAll : true ,
NoSNAT : false ,
NoStatefulFiltering : " fals e",
NoStatefulFiltering : " tru e",
NetfilterMode : preftype . NetfilterOn ,
AutoUpdate : ipn . AutoUpdatePrefs {
Check : true ,
@ -666,7 +694,7 @@ func TestPrefsFromUpArgs(t *testing.T) {
netip . MustParsePrefix ( "0.0.0.0/0" ) ,
netip . MustParsePrefix ( "::/0" ) ,
} ,
NoStatefulFiltering : " fals e",
NoStatefulFiltering : " tru e",
NetfilterMode : preftype . NetfilterOn ,
AutoUpdate : ipn . AutoUpdatePrefs {
Check : true ,
@ -1033,10 +1061,11 @@ func TestUpdatePrefs(t *testing.T) {
name : "change_login_server" ,
flags : [ ] string { "--login-server=https://localhost:1000" } ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
env : upCheckEnv { backendState : "Running" } ,
wantSimpleUp : true ,
@ -1047,10 +1076,11 @@ func TestUpdatePrefs(t *testing.T) {
name : "change_tags" ,
flags : [ ] string { "--advertise-tags=tag:foo" } ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
env : upCheckEnv { backendState : "Running" } ,
} ,
@ -1059,10 +1089,11 @@ func TestUpdatePrefs(t *testing.T) {
name : "explicit_empty_operator" ,
flags : [ ] string { "--operator=" } ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
OperatorUser : "somebody" ,
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
OperatorUser : "somebody" ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
env : upCheckEnv { user : "somebody" , backendState : "Running" } ,
wantJustEditMP : & ipn . MaskedPrefs {
@ -1079,10 +1110,11 @@ func TestUpdatePrefs(t *testing.T) {
name : "enable_ssh" ,
flags : [ ] string { "--ssh" } ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
wantJustEditMP : & ipn . MaskedPrefs {
RunSSHSet : true ,
@ -1099,11 +1131,12 @@ func TestUpdatePrefs(t *testing.T) {
name : "disable_ssh" ,
flags : [ ] string { "--ssh=false" } ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
RunSSH : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
RunSSH : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
wantJustEditMP : & ipn . MaskedPrefs {
RunSSHSet : true ,
@ -1123,11 +1156,12 @@ func TestUpdatePrefs(t *testing.T) {
flags : [ ] string { "--ssh=false" } ,
sshOverTailscale : true ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
RunSSH : true ,
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
RunSSH : true ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
wantJustEditMP : & ipn . MaskedPrefs {
RunSSHSet : true ,
@ -1146,10 +1180,11 @@ func TestUpdatePrefs(t *testing.T) {
flags : [ ] string { "--ssh=true" } ,
sshOverTailscale : true ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
wantJustEditMP : & ipn . MaskedPrefs {
RunSSHSet : true ,
@ -1168,10 +1203,11 @@ func TestUpdatePrefs(t *testing.T) {
flags : [ ] string { "--ssh=true" , "--accept-risk=lose-ssh" } ,
sshOverTailscale : true ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
wantJustEditMP : & ipn . MaskedPrefs {
RunSSHSet : true ,
@ -1189,11 +1225,12 @@ func TestUpdatePrefs(t *testing.T) {
flags : [ ] string { "--ssh=false" , "--accept-risk=lose-ssh" } ,
sshOverTailscale : true ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
RunSSH : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
Persist : & persist . Persist { UserProfile : tailcfg . UserProfile { LoginName : "crawshaw.github" } } ,
CorpDNS : true ,
RunSSH : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
wantJustEditMP : & ipn . MaskedPrefs {
RunSSHSet : true ,
@ -1211,9 +1248,10 @@ func TestUpdatePrefs(t *testing.T) {
flags : [ ] string { "--force-reauth" } ,
sshOverTailscale : true ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
env : upCheckEnv { backendState : "Running" } ,
wantErrSubtr : "aborted, no changes made" ,
@ -1223,9 +1261,10 @@ func TestUpdatePrefs(t *testing.T) {
flags : [ ] string { "--force-reauth" , "--accept-risk=lose-ssh" } ,
sshOverTailscale : true ,
curPrefs : & ipn . Prefs {
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : "https://login.tailscale.com" ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
wantJustEditMP : nil ,
env : upCheckEnv { backendState : "Running" } ,
@ -1234,9 +1273,10 @@ func TestUpdatePrefs(t *testing.T) {
name : "advertise_connector" ,
flags : [ ] string { "--advertise-connector" } ,
curPrefs : & ipn . Prefs {
ControlURL : ipn . DefaultControlURL ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
ControlURL : ipn . DefaultControlURL ,
CorpDNS : true ,
NetfilterMode : preftype . NetfilterOn ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
wantJustEditMP : & ipn . MaskedPrefs {
AppConnectorSet : true ,
@ -1259,6 +1299,7 @@ func TestUpdatePrefs(t *testing.T) {
AppConnector : ipn . AppConnectorPrefs {
Advertise : true ,
} ,
NoStatefulFiltering : opt . NewBool ( true ) ,
} ,
wantJustEditMP : & ipn . MaskedPrefs {
AppConnectorSet : true ,