From ee3bd4dbdad57816b2f5f330eaf020240c616bab Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Fri, 3 May 2024 06:14:58 -0700 Subject: [PATCH] derp/derphttp, net/netcheck: plumb netmon.Monitor to derp netcheck client Fixes #11981 Change-Id: I0e15a09f93aefb3cfddbc12d463c1c08b83e09fd Signed-off-by: Brad Fitzpatrick --- derp/derphttp/derphttp_client.go | 11 +++++++++-- net/netcheck/netcheck.go | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/derp/derphttp/derphttp_client.go b/derp/derphttp/derphttp_client.go index d5ec17b4f..c5d7c95b2 100644 --- a/derp/derphttp/derphttp_client.go +++ b/derp/derphttp/derphttp_client.go @@ -136,8 +136,15 @@ func NewRegionClient(privateKey key.NodePrivate, logf logger.Logf, netMon *netmo // NewNetcheckClient returns a Client that's only able to have its DialRegionTLS method called. // It's used by the netcheck package. -func NewNetcheckClient(logf logger.Logf) *Client { - return &Client{logf: logf, clock: tstime.StdClock{}} +func NewNetcheckClient(logf logger.Logf, netMon *netmon.Monitor) *Client { + if netMon == nil { + panic("nil netMon") + } + return &Client{ + logf: logf, + clock: tstime.StdClock{}, + netMon: netMon, + } } // NewClient returns a new DERP-over-HTTP client. It connects lazily. diff --git a/net/netcheck/netcheck.go b/net/netcheck/netcheck.go index efcc1a5de..a772851c0 100644 --- a/net/netcheck/netcheck.go +++ b/net/netcheck/netcheck.go @@ -1176,7 +1176,7 @@ func (c *Client) measureHTTPSLatency(ctx context.Context, reg *tailcfg.DERPRegio var ip netip.Addr - dc := derphttp.NewNetcheckClient(c.logf) + dc := derphttp.NewNetcheckClient(c.logf, c.NetMon) defer dc.Close() tlsConn, tcpConn, node, err := dc.DialRegionTLS(ctx, reg)