tsnet: expose field to configure Wireguard port

Signed-off-by: Tom DNetto <tom@tailscale.com>
Updates #1748
This commit is contained in:
Tom DNetto
2023-06-26 13:57:44 -07:00
committed by Tom
parent 8e840489ed
commit 1377618dbc
2 changed files with 9 additions and 2 deletions

View File

@ -61,7 +61,7 @@ func inTest() bool { return flag.Lookup("test.v") != nil }
// Server is an embedded Tailscale server.
//
// Its exported fields may be changed until the first call to Listen.
// Its exported fields may be changed until the first method call.
type Server struct {
// Dir specifies the name of the directory to use for
// state. If empty, a directory is selected automatically
@ -108,6 +108,11 @@ type Server struct {
// If empty, the Tailscale default is used.
ControlURL string
// Port is the UDP port to listen on for WireGuard and peer-to-peer
// traffic. If zero, a port is automatically selected. Leave this
// field at zero unless you know what you are doing.
Port uint16
getCertForTesting func(*tls.ClientHelloInfo) (*tls.Certificate, error)
initOnce sync.Once
@ -502,7 +507,7 @@ func (s *Server) start() (reterr error) {
sys := new(tsd.System)
s.dialer = &tsdial.Dialer{Logf: logf} // mutated below (before used)
eng, err := wgengine.NewUserspaceEngine(logf, wgengine.Config{
ListenPort: 0,
ListenPort: s.Port,
NetMon: s.netMon,
Dialer: s.dialer,
SetSubsystem: sys.Set,