If the specified exit node string starts with "auto:" (i.e., can be parsed as an ipn.ExitNodeExpression),
we update ipn.Prefs.AutoExitNode instead of ipn.Prefs.ExitNodeID.
Fixes#16459
Signed-off-by: Nick Khyl <nickk@tailscale.com>
setf.StringVar(&setArgs.profileName,"nickname","","nickname for the current account")
setf.BoolVar(&setArgs.acceptRoutes,"accept-routes",acceptRouteDefault(goos),"accept routes advertised by other Tailscale nodes")
setf.BoolVar(&setArgs.acceptDNS,"accept-dns",true,"accept DNS configuration from the admin panel")
setf.StringVar(&setArgs.exitNodeIP,"exit-node","","Tailscale exit node (IP or base name) for internet traffic, or empty string to not use an exit node")
setf.StringVar(&setArgs.exitNodeIP,"exit-node","","Tailscale exit node (IP, base name, or auto:any) for internet traffic, or empty string to not use an exit node")
setf.BoolVar(&setArgs.exitNodeAllowLANAccess,"exit-node-allow-lan-access",false,"Allow direct access to the local network when routing traffic via an exit node")
upf.BoolVar(&upArgs.acceptRoutes,"accept-routes",acceptRouteDefault(goos),"accept routes advertised by other Tailscale nodes")
upf.BoolVar(&upArgs.acceptDNS,"accept-dns",true,"accept DNS configuration from the admin panel")
upf.Var(notFalseVar{},"host-routes",hidden+"install host routes to other Tailscale nodes (must be true as of Tailscale 1.67+)")
upf.StringVar(&upArgs.exitNodeIP,"exit-node","","Tailscale exit node (IP or base name) for internet traffic, or empty string to not use an exit node")
upf.StringVar(&upArgs.exitNodeIP,"exit-node","","Tailscale exit node (IP, base name, or auto:any) for internet traffic, or empty string to not use an exit node")
upf.BoolVar(&upArgs.exitNodeAllowLANAccess,"exit-node-allow-lan-access",false,"Allow direct access to the local network when routing traffic via an exit node")