magicsock: plumb through derpTLSConfig variable (for testing)
import (
"context"
+ "crypto/tls"
"encoding/binary"
"errors"
"fmt"
@@ -84,6 +85,7 @@ type Conn struct {
derpConn map[int]*derphttp.Client // magic derp port (see derpmap.go) to its client
derpCancel map[int]context.CancelFunc // to close derp goroutines
derpWriteCh map[int]chan<- derpWriteRequest
+ derpTLSConfig *tls.Config // normally nil; used by tests
}
// udpAddr is the key in the addrsByUDP map.
@@ -612,6 +614,7 @@ func (c *Conn) derpWriteChanOfAddr(addr *net.UDPAddr) chan<- derpWriteRequest {
c.logf("derphttp.NewClient: port %d, host %q invalid? err: %v", addr.Port, host, err)
return nil
}
+ dc.TLSConfig = c.derpTLSConfig
ctx, cancel := context.WithCancel(context.Background())
// TODO: close derp channels (if addr.Port != myDerp) on inactivity timer
