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 <crawshaw@tailscale.com>
pull/196/head
David Crawshaw 5 years ago
parent 73cae4eb11
commit 455ba751d9

@ -400,13 +400,14 @@ func (c *Conn) setNearestDERP(derpNum int) (wantDERP bool) {
// No change. // No change.
return true 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.myDerp = derpNum
c.logf("home DERP server is now %v, %v", derpNum, c.derps.ServerByID(derpNum)) c.logf("home DERP server is now %v, %v", derpNum, c.derps.ServerByID(derpNum))
for i, ad := range c.activeDerp { for i, ad := range c.activeDerp {
go ad.c.NotePreferred(i == c.myDerp) go ad.c.NotePreferred(i == c.myDerp)
} }
if derpNum != 0 && derpNum != c.myDerp { if derpNum != 0 {
// On change, start connecting to it:
go c.derpWriteChanOfAddr(&net.UDPAddr{IP: derpMagicIP, Port: derpNum}) go c.derpWriteChanOfAddr(&net.UDPAddr{IP: derpMagicIP, Port: derpNum})
} }
return true return true

Loading…
Cancel
Save