From be140add75e8bcda8ec0b24e61a6305eea893458 Mon Sep 17 00:00:00 2001 From: James Tucker Date: Tue, 6 Sep 2022 12:16:39 -0700 Subject: [PATCH] wgengine/magicsock: fix regression in initial bind for js 1f959edeb0c6ad3a82fcdaa4ca65a02571493cc6 introduced a regression for JS where the initial bind no longer occurred at all for JS. The condition is moved deeper in the call tree to avoid proliferation of higher level conditions. Updates #5537 Signed-off-by: James Tucker --- wgengine/magicsock/magicsock.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/wgengine/magicsock/magicsock.go b/wgengine/magicsock/magicsock.go index 6cbe3c7ee..cf3945816 100644 --- a/wgengine/magicsock/magicsock.go +++ b/wgengine/magicsock/magicsock.go @@ -2829,6 +2829,11 @@ func (c *Conn) bindSocket(ruc *RebindingUDPConn, network string, curPortFate cur ruc.mu.Lock() defer ruc.mu.Unlock() + if runtime.GOOS == "js" { + ruc.setConnLocked(newBlockForeverConn()) + return nil + } + if debugAlwaysDERP { c.logf("disabled %v per TS_DEBUG_ALWAYS_USE_DERP", network) ruc.setConnLocked(newBlockForeverConn()) @@ -2893,9 +2898,6 @@ const ( // rebind closes and re-binds the UDP sockets. // We consider it successful if we manage to bind the IPv4 socket. func (c *Conn) rebind(curPortFate currentPortFate) error { - if runtime.GOOS == "js" { - return nil - } if err := c.bindSocket(&c.pconn6, "udp6", curPortFate); err != nil { c.logf("magicsock: Rebind ignoring IPv6 bind failure: %v", err) }