derp: reduce DERP memory use; don't require callers to pass in memory to use
The magicsock derpReader was holding onto 65KB for each DERP connection forever, just in case. Make the derp{,http}.Client be in charge of memory instead. It can reuse its bufio.Reader buffer space.
This commit is contained in:
@ -1000,7 +1000,6 @@ func (c *Conn) runDerpReader(ctx context.Context, derpFakeAddr *net.UDPAddr, dc
|
||||
}
|
||||
|
||||
didCopy := make(chan struct{}, 1)
|
||||
var buf [derp.MaxPacketSize]byte
|
||||
|
||||
res := derpReadResult{derpAddr: derpFakeAddr}
|
||||
var pkt derp.ReceivedPacket
|
||||
@ -1015,7 +1014,7 @@ func (c *Conn) runDerpReader(ctx context.Context, derpFakeAddr *net.UDPAddr, dc
|
||||
peerPresent := map[key.Public]bool{}
|
||||
|
||||
for {
|
||||
msg, err := dc.Recv(buf[:])
|
||||
msg, err := dc.Recv()
|
||||
if err == derphttp.ErrClientClosed {
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user