mirror of
https://github.com/coder/coder.git
synced 2025-07-12 00:14:10 +00:00
chore: get TUN/DNS working on Windows for CoderVPN (#16310)
This commit is contained in:
@ -116,6 +116,9 @@ type Options struct {
|
||||
Router router.Router
|
||||
// TUNDev is optional, and is passed to the underlying wireguard engine.
|
||||
TUNDev tun.Device
|
||||
// WireguardMonitor is optional, and is passed to the underlying wireguard
|
||||
// engine.
|
||||
WireguardMonitor *netmon.Monitor
|
||||
}
|
||||
|
||||
// TelemetrySink allows tailnet.Conn to send network telemetry to the Coder
|
||||
@ -171,13 +174,15 @@ func NewConn(options *Options) (conn *Conn, err error) {
|
||||
nodeID = tailcfg.NodeID(uid)
|
||||
}
|
||||
|
||||
wireguardMonitor, err := netmon.New(Logger(options.Logger.Named("net.wgmonitor")))
|
||||
if err != nil {
|
||||
return nil, xerrors.Errorf("create wireguard link monitor: %w", err)
|
||||
if options.WireguardMonitor == nil {
|
||||
options.WireguardMonitor, err = netmon.New(Logger(options.Logger.Named("net.wgmonitor")))
|
||||
if err != nil {
|
||||
return nil, xerrors.Errorf("create wireguard link monitor: %w", err)
|
||||
}
|
||||
}
|
||||
defer func() {
|
||||
if err != nil {
|
||||
wireguardMonitor.Close()
|
||||
options.WireguardMonitor.Close()
|
||||
}
|
||||
}()
|
||||
|
||||
@ -186,7 +191,7 @@ func NewConn(options *Options) (conn *Conn, err error) {
|
||||
}
|
||||
sys := new(tsd.System)
|
||||
wireguardEngine, err := wgengine.NewUserspaceEngine(Logger(options.Logger.Named("net.wgengine")), wgengine.Config{
|
||||
NetMon: wireguardMonitor,
|
||||
NetMon: options.WireguardMonitor,
|
||||
Dialer: dialer,
|
||||
ListenPort: options.ListenPort,
|
||||
SetSubsystem: sys.Set,
|
||||
@ -293,7 +298,7 @@ func NewConn(options *Options) (conn *Conn, err error) {
|
||||
listeners: map[listenKey]*listener{},
|
||||
tunDevice: sys.Tun.Get(),
|
||||
netStack: netStack,
|
||||
wireguardMonitor: wireguardMonitor,
|
||||
wireguardMonitor: options.WireguardMonitor,
|
||||
wireguardRouter: &router.Config{
|
||||
LocalAddrs: options.Addresses,
|
||||
},
|
||||
|
Reference in New Issue
Block a user