From 455ba751d948ee06f2ff9bd5c071742f7b2c4986 Mon Sep 17 00:00:00 2001 From: David Crawshaw Date: Thu, 19 Mar 2020 17:32:31 +1100 Subject: [PATCH] magicsock: start connection to HOME derp immediately The code as written intended to do this, but it repeated the comparison of derpNum and c.myDerp after c.myDerp had been updated, so it never executed. Signed-off-by: David Crawshaw --- wgengine/magicsock/magicsock.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wgengine/magicsock/magicsock.go b/wgengine/magicsock/magicsock.go index 8e55e5b91..1c8e6eee3 100644 --- a/wgengine/magicsock/magicsock.go +++ b/wgengine/magicsock/magicsock.go @@ -400,13 +400,14 @@ func (c *Conn) setNearestDERP(derpNum int) (wantDERP bool) { // No change. return true } + // On change, notify all currently connected DERP servers and + // start connecting to our home DERP if we are not already. c.myDerp = derpNum c.logf("home DERP server is now %v, %v", derpNum, c.derps.ServerByID(derpNum)) for i, ad := range c.activeDerp { go ad.c.NotePreferred(i == c.myDerp) } - if derpNum != 0 && derpNum != c.myDerp { - // On change, start connecting to it: + if derpNum != 0 { go c.derpWriteChanOfAddr(&net.UDPAddr{IP: derpMagicIP, Port: derpNum}) } return true