Add a new "ipnbus" build feature tag so the watch-ipn-bus LocalAPI endpoint can be independently controlled, rather than being gated behind HasDebug || HasServe. Minimal/embedded builds that omit both debug and serve were getting 404s on watch-ipn-bus, breaking "tailscale up --authkey=..." and other CLI flows that depend on WatchIPNBus. In the CLI, check buildfeatures.HasIPNBus before attempting to watch the IPN bus in "tailscale up"/"tailscale login", and exit early with an informational message when the feature is omitted. Also add the missing NewCounterFunc stub to clientmetric/omit.go, which caused compilation errors when building with ts_omit_clientmetrics and netstack enabled. Fixes #19240 Change-Id: I2e3c69a72fc50fa02542b91b8a54859618a463d1 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>main
parent
9a7f143903
commit
1b5b43787c
@ -0,0 +1,13 @@ |
|||||||
|
// Copyright (c) Tailscale Inc & contributors
|
||||||
|
// SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
|
// Code generated by gen.go; DO NOT EDIT.
|
||||||
|
|
||||||
|
//go:build ts_omit_ipnbus
|
||||||
|
|
||||||
|
package buildfeatures |
||||||
|
|
||||||
|
// HasIPNBus is whether the binary was built with support for modular feature "IPN notification bus (watch-ipn-bus) support, used by GUIs, debugging, and nicer 'tailscale up' support".
|
||||||
|
// Specifically, it's whether the binary was NOT built with the "ts_omit_ipnbus" build tag.
|
||||||
|
// It's a const so it can be used for dead code elimination.
|
||||||
|
const HasIPNBus = false |
||||||
@ -0,0 +1,13 @@ |
|||||||
|
// Copyright (c) Tailscale Inc & contributors
|
||||||
|
// SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
|
// Code generated by gen.go; DO NOT EDIT.
|
||||||
|
|
||||||
|
//go:build !ts_omit_ipnbus
|
||||||
|
|
||||||
|
package buildfeatures |
||||||
|
|
||||||
|
// HasIPNBus is whether the binary was built with support for modular feature "IPN notification bus (watch-ipn-bus) support, used by GUIs, debugging, and nicer 'tailscale up' support".
|
||||||
|
// Specifically, it's whether the binary was NOT built with the "ts_omit_ipnbus" build tag.
|
||||||
|
// It's a const so it can be used for dead code elimination.
|
||||||
|
const HasIPNBus = true |
||||||
Loading…
Reference in new issue