diff --git a/cmd/tailscale/cli/cli_test.go b/cmd/tailscale/cli/cli_test.go index d6de6ff94..df228b48d 100644 --- a/cmd/tailscale/cli/cli_test.go +++ b/cmd/tailscale/cli/cli_test.go @@ -408,6 +408,21 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) { }, want: accidentalUpPrefix + " --hostname=foo --exit-node=100.64.5.7", }, + { + name: "error_exit_node_and_allow_lan_omit_with_id_pref", // Isue 3480 + flags: []string{"--hostname=foo"}, + curExitNodeIP: netaddr.MustParseIP("100.2.3.4"), + curPrefs: &ipn.Prefs{ + ControlURL: ipn.DefaultControlURL, + AllowSingleHosts: true, + CorpDNS: true, + NetfilterMode: preftype.NetfilterOn, + + ExitNodeAllowLANAccess: true, + ExitNodeID: "some_stable_id", + }, + want: accidentalUpPrefix + " --hostname=foo --exit-node-allow-lan-access --exit-node=100.2.3.4", + }, { name: "ignore_login_server_synonym", flags: []string{"--login-server=https://controlplane.tailscale.com"}, diff --git a/cmd/tailscale/cli/up.go b/cmd/tailscale/cli/up.go index 598097572..cc9f1cbce 100644 --- a/cmd/tailscale/cli/up.go +++ b/cmd/tailscale/cli/up.go @@ -447,7 +447,7 @@ func runUp(ctx context.Context, args []string) error { flagSet: upFlagSet, upArgs: upArgs, backendState: st.BackendState, - curExitNodeIP: exitNodeIP(prefs, st), + curExitNodeIP: exitNodeIP(curPrefs, st), } simpleUp, justEditMP, err := updatePrefs(prefs, curPrefs, env) if err != nil {