tailscale/control/controlclient
Achille Roussel 7f3bbc9865 net/netutil: add NewDefaultTransport to avoid http.DefaultTransport panics
Several packages built their HTTP transports with

    http.DefaultTransport.(*http.Transport).Clone()

The standard library only documents http.DefaultTransport as an
http.RoundTripper, so an application is free to replace it with a
RoundTripper that is not a *http.Transport (e.g. an instrumented or
tracing wrapper). When such an application embeds tsnet.Server, the
unchecked type assertion panics as soon as tsnet brings up its control
connection, DNS bootstrap, or log uploader.

Add netutil.NewDefaultTransport, which returns a clone of the global
when it is still the standard *http.Transport (preserving existing
behavior) and otherwise returns a fresh transport mirroring the stdlib
defaults. Route every clone site through it.

Updates #19937

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Achille Roussel <achille.roussel@gmail.com>
2026-06-01 12:28:36 -07:00
..
auto.go ipn/ipnlocal, control/controlclient: process node adds/removes in constant time 2026-05-21 09:26:19 -07:00
client.go control,health,ipn: move IP forwarding check to health tracker (#19007) 2026-03-18 16:24:12 -04:00
controlclient_test.go control/controlclient: handle 429 responses during node registration 2026-04-15 18:54:08 +01:00
direct_test.go control/controlclient: handle 429 responses during node registration 2026-04-15 18:54:08 +01:00
direct.go net/netutil: add NewDefaultTransport to avoid http.DefaultTransport panics 2026-06-01 12:28:36 -07:00
errors.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
map_debug.go control/controlclient: add patchify miss stats 2026-04-15 08:05:57 -07:00
map_test.go cmd/containerboot: track peers from IPN bus updates, stop using netmap.NetworkMap 2026-05-27 14:12:48 -07:00
map.go control/controlclient: fix deadlock in map session change queue processing (#19828) 2026-05-22 07:13:18 -07:00
sign_supported_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
sign_supported.go control/controlclient: enable request signatures on macOS (#19317) 2026-04-15 14:11:14 -04:00
sign_unsupported.go control/controlclient: enable request signatures on macOS (#19317) 2026-04-15 14:11:14 -04:00
sign.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
status.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00