Skip to content

Commit b940c19

Browse files
committed
merge fixes
1 parent 1e52052 commit b940c19

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

wgengine/magicsock/derp.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,10 @@ func (c *Conn) derpWriteChanOfAddr(addr netip.AddrPort, peer key.NodePublic) cha
311311
}
312312
c.logf("magicsock: adding connection to derp-%v for %v", regionID, why)
313313

314+
if c.derpMap == nil || c.derpMap.Regions[regionID] == nil {
315+
return nil
316+
}
317+
314318
firstDerp := false
315319
if c.activeDerp == nil {
316320
firstDerp = true
@@ -341,7 +345,16 @@ func (c *Conn) derpWriteChanOfAddr(addr netip.AddrPort, peer key.NodePublic) cha
341345
dc.SetCanAckPings(true)
342346
dc.NotePreferred(c.myDerp == regionID)
343347
dc.SetAddressFamilySelector(derpAddrFamSelector{c})
348+
dc.SetForcedWebsocketCallback(c.derpForcedWebsocketFunc)
344349
dc.DNSCache = dnscache.Get()
350+
header := c.derpHeader.Load()
351+
if header != nil {
352+
dc.Header = header.Clone()
353+
}
354+
dialer := c.derpRegionDialer.Load()
355+
if dialer != nil {
356+
dc.SetRegionDialer(*dialer)
357+
}
345358

346359
ctx, cancel := context.WithCancel(c.connCtx)
347360
ch := make(chan derpWriteRequest, bufferedDerpWritesBeforeDrop())
@@ -374,6 +387,8 @@ func (c *Conn) derpWriteChanOfAddr(addr netip.AddrPort, peer key.NodePublic) cha
374387
startGate = c.derpStarted
375388
go func() {
376389
dc.Connect(ctx)
390+
c.mu.Lock()
391+
defer c.mu.Unlock()
377392
close(c.derpStarted)
378393
c.muCond.Broadcast()
379394
}()

wgengine/magicsock/endpoint.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1124,6 +1124,7 @@ func (de *endpoint) stopAndReset() {
11241124
func (de *endpoint) resetLocked() {
11251125
de.lastSend = 0
11261126
de.lastFullPing = 0
1127+
de.c.logf("magicsock: disco: node %v %v now using DERP only (reset)", de.publicKey.ShortString(), de.discoShort())
11271128
de.bestAddr = addrLatency{}
11281129
de.bestAddrAt = 0
11291130
de.trustBestAddrUntil = 0

0 commit comments

Comments
 (0)