MCPcopy
hub / github.com/tailscale/tailscale / runSet

Function runSet

cmd/tailscale/cli/set.go:131–287  ·  view source on GitHub ↗
(ctx context.Context, args []string)

Source from the content-addressed store, hash-verified

129)
130
131func runSet(ctx context.Context, args []string) (retErr error) {
132 if len(args) > 0 {
133 fatalf("too many non-flag arguments: %q", args)
134 }
135
136 st, err := localClient.Status(ctx)
137 if err != nil {
138 return err
139 }
140
141 // Note that even though we set the values here regardless of whether the
142 // user passed the flag, the value is only used if the user passed the flag.
143 // See updateMaskedPrefsFromUpOrSetFlag.
144 maskedPrefs := &ipn.MaskedPrefs{
145 Prefs: ipn.Prefs{
146 ProfileName: setArgs.profileName,
147 RouteAll: setArgs.acceptRoutes,
148 CorpDNS: setArgs.acceptDNS,
149 ExitNodeAllowLANAccess: setArgs.exitNodeAllowLANAccess,
150 ShieldsUp: setArgs.shieldsUp,
151 RunSSH: setArgs.runSSH,
152 RunWebClient: setArgs.runWebClient,
153 Hostname: setArgs.hostname,
154 OperatorUser: setArgs.opUser,
155 NoSNAT: !setArgs.snat,
156 ForceDaemon: setArgs.forceDaemon,
157 Sync: opt.NewBool(setArgs.sync),
158 AutoUpdate: ipn.AutoUpdatePrefs{
159 Check: setArgs.updateCheck,
160 Apply: opt.NewBool(setArgs.updateApply),
161 },
162 AppConnector: ipn.AppConnectorPrefs{
163 Advertise: setArgs.advertiseConnector,
164 },
165 PostureChecking: setArgs.reportPosture,
166 NoStatefulFiltering: opt.NewBool(!setArgs.statefulFiltering),
167 },
168 }
169
170 if effectiveGOOS() == "linux" {
171 nfMode, warning, err := netfilterModeFromFlag(setArgs.netfilterMode)
172 if err != nil {
173 return err
174 }
175 if warning != "" {
176 warnf(warning)
177 }
178 maskedPrefs.Prefs.NetfilterMode = nfMode
179 }
180
181 if setArgs.exitNodeIP != "" {
182 if expr, useAutoExitNode := ipn.ParseAutoExitNodeString(setArgs.exitNodeIP); useAutoExitNode {
183 maskedPrefs.AutoExitNode = expr
184 maskedPrefs.AutoExitNodeSet = true
185 } else if err := maskedPrefs.Prefs.SetExitNodeIP(setArgs.exitNodeIP, st); err != nil {
186 if _, ok := errors.AsType[ipn.ExitNodeLocalIPError](err); ok {
187 return fmt.Errorf("%w; did you mean --advertise-exit-node?", err)
188 }

Callers

nothing calls this directly

Calls 15

IsEmptyMethod · 0.95
NewBoolFunction · 0.92
ParseAutoExitNodeStringFunction · 0.92
IsMacSysExtFunction · 0.92
fatalfFunction · 0.85
effectiveGOOSFunction · 0.85
netfilterModeFromFlagFunction · 0.85
warnfFunction · 0.85
warnOnAdvertiseRoutesFunction · 0.85
presentRiskToUserFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…