diff --git a/wgengine/magicsock/magicsock.go b/wgengine/magicsock/magicsock.go index d20389a10..00036ae0e 100644 --- a/wgengine/magicsock/magicsock.go +++ b/wgengine/magicsock/magicsock.go @@ -1206,6 +1206,7 @@ func (c *Conn) derpWriteChanOfAddr(addr netaddr.IPPort, peer key.Public) chan<- go c.runDerpReader(ctx, addr, dc, wg, startGate) go c.runDerpWriter(ctx, dc, ch, wg, startGate) + go c.epFunc(nil) // call RequestStatus with DERPs change return ad.writeCh } diff --git a/wgengine/userspace.go b/wgengine/userspace.go index b5c0790af..a261da24f 100644 --- a/wgengine/userspace.go +++ b/wgengine/userspace.go @@ -229,10 +229,11 @@ func newUserspaceEngineAdvanced(conf EngineConfig) (_ Engine, reterr error) { e.linkMon = mon endpointsFn := func(endpoints []string) { - e.mu.Lock() - e.endpoints = append(e.endpoints[:0], endpoints...) - e.mu.Unlock() - + if len(endpoints) != 0 { + e.mu.Lock() + e.endpoints = append(e.endpoints[:0], endpoints...) + e.mu.Unlock() + } e.RequestStatus() } magicsockOpts := magicsock.Options{