cmd/tailscale/cli: create netmon in debug ts2021

Otherwise we'll see a panic if we hit the dnsfallback code and try to
call NewDialer with a nil NetMon.

Updates #14161

Signed-off-by: Andrew Dunham <andrew@du.nham.ca>
Change-Id: I81c6e72376599b341cb58c37134c2a948b97cf5f
irbekrm/op_fix
Andrew Dunham 21 hours ago
parent 70d1241ca6
commit af4c3a4a1b

@ -36,6 +36,7 @@ import (
"tailscale.com/hostinfo" "tailscale.com/hostinfo"
"tailscale.com/internal/noiseconn" "tailscale.com/internal/noiseconn"
"tailscale.com/ipn" "tailscale.com/ipn"
"tailscale.com/net/netmon"
"tailscale.com/net/tsaddr" "tailscale.com/net/tsaddr"
"tailscale.com/net/tshttpproxy" "tailscale.com/net/tshttpproxy"
"tailscale.com/paths" "tailscale.com/paths"
@ -850,6 +851,11 @@ func runTS2021(ctx context.Context, args []string) error {
logf = log.Printf logf = log.Printf
} }
netMon, err := netmon.New(logger.WithPrefix(logf, "netmon: "))
if err != nil {
return fmt.Errorf("creating netmon: %w", err)
}
noiseDialer := &controlhttp.Dialer{ noiseDialer := &controlhttp.Dialer{
Hostname: ts2021Args.host, Hostname: ts2021Args.host,
HTTPPort: "80", HTTPPort: "80",
@ -859,6 +865,7 @@ func runTS2021(ctx context.Context, args []string) error {
ProtocolVersion: uint16(ts2021Args.version), ProtocolVersion: uint16(ts2021Args.version),
Dialer: dialFunc, Dialer: dialFunc,
Logf: logf, Logf: logf,
NetMon: netMon,
} }
const tries = 2 const tries = 2
for i := range tries { for i := range tries {

@ -76,6 +76,8 @@ type Dialer struct {
// dropped. // dropped.
Logf logger.Logf Logf logger.Logf
// NetMon is the [netmon.Monitor] to use for this Dialer. It must be
// non-nil.
NetMon *netmon.Monitor NetMon *netmon.Monitor
// HealthTracker, if non-nil, is the health tracker to use. // HealthTracker, if non-nil, is the health tracker to use.

Loading…
Cancel
Save