cmd/tailscale/cli: fetch netmap via current-netmap debug action

Stop opening an IPN bus subscription with NotifyInitialNetMap purely to
read the current netmap once. Use the LocalAPI debug current-netmap
action (added in 159cf8707) instead, which returns the current netmap
synchronously without subscribing to the bus.

Updates #12542

Change-Id: I8aa2096d65aaea4dfe62634f03ce06b5470e0e51
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick 2026-05-01 14:01:14 +00:00 committed by Brad Fitzpatrick
parent 4c3ed5ab32
commit bbcb8650d4

View File

@ -670,18 +670,11 @@ func runNetmap(ctx context.Context, args []string) error {
ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
defer cancel()
var mask ipn.NotifyWatchOpt = ipn.NotifyInitialNetMap
watcher, err := localClient.WatchIPNBus(ctx, mask)
raw, err := localClient.DebugResultJSON(ctx, "current-netmap")
if err != nil {
return err
}
defer watcher.Close()
n, err := watcher.Next()
if err != nil {
return err
}
j, _ := json.MarshalIndent(n.NetMap, "", "\t")
j, _ := json.MarshalIndent(raw, "", "\t")
fmt.Printf("%s\n", j)
return nil
}