mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-03 06:45:49 +00:00
cmd/tailscale: changes to --advertise-tags should wait for possible
reauth. Signed-off-by: Maisem Ali <maisem@tailscale.com>
This commit is contained in:
parent
1b4e007425
commit
0bf515e780
@ -759,6 +759,18 @@ func TestUpdatePrefs(t *testing.T) {
|
|||||||
wantJustEditMP: &ipn.MaskedPrefs{WantRunningSet: true},
|
wantJustEditMP: &ipn.MaskedPrefs{WantRunningSet: true},
|
||||||
wantErrSubtr: "can't change --login-server without --force-reauth",
|
wantErrSubtr: "can't change --login-server without --force-reauth",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "change_tags",
|
||||||
|
flags: []string{"--advertise-tags=tag:foo"},
|
||||||
|
curPrefs: &ipn.Prefs{
|
||||||
|
ControlURL: "https://login.tailscale.com",
|
||||||
|
Persist: &persist.Persist{LoginName: "crawshaw.github"},
|
||||||
|
AllowSingleHosts: true,
|
||||||
|
CorpDNS: true,
|
||||||
|
NetfilterMode: preftype.NetfilterOn,
|
||||||
|
},
|
||||||
|
env: upCheckEnv{backendState: "Running"},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
@ -277,7 +277,7 @@ func prefsFromUpArgs(upArgs upArgsT, warnf logger.Logf, st *ipnstate.Status, goo
|
|||||||
// It returns a non-nil justEditMP if we're already running and none of
|
// It returns a non-nil justEditMP if we're already running and none of
|
||||||
// the flags require a restart, so we can just do an EditPrefs call and
|
// the flags require a restart, so we can just do an EditPrefs call and
|
||||||
// change the prefs at runtime (e.g. changing hostname, changing
|
// change the prefs at runtime (e.g. changing hostname, changing
|
||||||
// advertised tags, routes, etc).
|
// advertised routes, etc).
|
||||||
//
|
//
|
||||||
// It returns simpleUp if we're running a simple "tailscale up" to
|
// It returns simpleUp if we're running a simple "tailscale up" to
|
||||||
// transition to running from a previously-logged-in but down state,
|
// transition to running from a previously-logged-in but down state,
|
||||||
@ -297,6 +297,8 @@ func updatePrefs(prefs, curPrefs *ipn.Prefs, env upCheckEnv) (simpleUp bool, jus
|
|||||||
return false, nil, fmt.Errorf("can't change --login-server without --force-reauth")
|
return false, nil, fmt.Errorf("can't change --login-server without --force-reauth")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tagsChanged := !reflect.DeepEqual(curPrefs.AdvertiseTags, prefs.AdvertiseTags)
|
||||||
|
|
||||||
simpleUp = env.flagSet.NFlag() == 0 &&
|
simpleUp = env.flagSet.NFlag() == 0 &&
|
||||||
curPrefs.Persist != nil &&
|
curPrefs.Persist != nil &&
|
||||||
curPrefs.Persist.LoginName != "" &&
|
curPrefs.Persist.LoginName != "" &&
|
||||||
@ -306,7 +308,8 @@ func updatePrefs(prefs, curPrefs *ipn.Prefs, env upCheckEnv) (simpleUp bool, jus
|
|||||||
!env.upArgs.forceReauth &&
|
!env.upArgs.forceReauth &&
|
||||||
!env.upArgs.reset &&
|
!env.upArgs.reset &&
|
||||||
env.upArgs.authKeyOrFile == "" &&
|
env.upArgs.authKeyOrFile == "" &&
|
||||||
!controlURLChanged
|
!controlURLChanged &&
|
||||||
|
!tagsChanged
|
||||||
if justEdit {
|
if justEdit {
|
||||||
justEditMP = new(ipn.MaskedPrefs)
|
justEditMP = new(ipn.MaskedPrefs)
|
||||||
justEditMP.WantRunningSet = true
|
justEditMP.WantRunningSet = true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user