cmd/derper: improve logging on derp mesh connect

Include the mesh log prefix in all mesh connection setup.

Updates tailscale/corp#25653

Signed-off-by: James Tucker <james@tailscale.com>
This commit is contained in:
James Tucker 2025-01-06 15:39:41 -08:00 committed by James Tucker
parent cc4aa435ef
commit 6e45a8304e

View File

@ -47,6 +47,7 @@ func startMeshWithHost(s *derp.Server, host string) error {
c.SetURLDialer(func(ctx context.Context, network, addr string) (net.Conn, error) { c.SetURLDialer(func(ctx context.Context, network, addr string) (net.Conn, error) {
host, port, err := net.SplitHostPort(addr) host, port, err := net.SplitHostPort(addr)
if err != nil { if err != nil {
logf("failed to split %q: %v", addr, err)
return nil, err return nil, err
} }
var d net.Dialer var d net.Dialer
@ -55,15 +56,18 @@ func startMeshWithHost(s *derp.Server, host string) error {
subCtx, cancel := context.WithTimeout(ctx, 2*time.Second) subCtx, cancel := context.WithTimeout(ctx, 2*time.Second)
defer cancel() defer cancel()
vpcHost := base + "-vpc.tailscale.com" vpcHost := base + "-vpc.tailscale.com"
ips, _ := r.LookupIP(subCtx, "ip", vpcHost) ips, err := r.LookupIP(subCtx, "ip", vpcHost)
if err != nil {
logf("failed to resolve %v: %v", vpcHost, err)
}
if len(ips) > 0 { if len(ips) > 0 {
vpcAddr := net.JoinHostPort(ips[0].String(), port) vpcAddr := net.JoinHostPort(ips[0].String(), port)
c, err := d.DialContext(subCtx, network, vpcAddr) c, err := d.DialContext(subCtx, network, vpcAddr)
if err == nil { if err == nil {
log.Printf("connected to %v (%v) instead of %v", vpcHost, ips[0], base) logf("connected to %v (%v) instead of %v", vpcHost, ips[0], base)
return c, nil return c, nil
} }
log.Printf("failed to connect to %v (%v): %v; trying non-VPC route", vpcHost, ips[0], err) logf("failed to connect to %v (%v): %v; trying non-VPC route", vpcHost, ips[0], err)
} }
} }
return d.DialContext(ctx, network, addr) return d.DialContext(ctx, network, addr)