From fbab12c94c25afa56973c85f669cda09a24d9eeb Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Fri, 6 Mar 2020 07:47:54 -0800 Subject: [PATCH] wgengine/magicsock: skip netcheck if external STUN aren't in use Updates #146 (not a complete fix yet probably) --- wgengine/magicsock/magicsock.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/wgengine/magicsock/magicsock.go b/wgengine/magicsock/magicsock.go index 4208f0cc1..94df5ef60 100644 --- a/wgengine/magicsock/magicsock.go +++ b/wgengine/magicsock/magicsock.go @@ -247,8 +247,23 @@ func (c *Conn) epUpdate(ctx context.Context) { } } +func (c *Conn) hasExternalSTUN() bool { + for _, hp := range c.stunServers { + if strings.Contains(hp, ".com:") { + // matches stun.l.google.com:19302 or derp\d+.tailscale.com:nnnn + return true + } + } + return false +} + func (c *Conn) updateNetInfo() { logf := logger.WithPrefix(c.logf, "updateNetInfo: ") + if !c.hasExternalSTUN() { + logf("skipping in non-production mode") + return + } + ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) defer cancel()