diff --git a/libtailscale/backend.go b/libtailscale/backend.go index 864136c33e..16fa0c6701 100644 --- a/libtailscale/backend.go +++ b/libtailscale/backend.go @@ -249,6 +249,11 @@ func (a *App) runBackend(ctx context.Context, hardwareAttestation bool) error { vpnService.service = nil } case i := <-onDNSConfigChanged: + // TODO (barnstar): Consider using [dns.Manager.RecompileDNSConfig] here. + // NetworkChanged injects a netmon event that has the side effect + // regenerating the DNS config but have the means to do + // that independently of userspace engine network changes which may + // eliminate some unnecessary work. go b.NetworkChanged(i) } } @@ -265,7 +270,7 @@ func (a *App) newBackend(dataDir string, appCtx AppContext, store *stateStore, devices: newTUNDevices(), settings: settings, appCtx: appCtx, - bus: eventbus.New(), + bus: sys.Bus.Get(), } var logID logid.PrivateID diff --git a/libtailscale/net.go b/libtailscale/net.go index 86becab4cb..0a12e19d1d 100644 --- a/libtailscale/net.go +++ b/libtailscale/net.go @@ -275,10 +275,10 @@ func (b *backend) NetworkChanged(ifname string) { // Set the interface name and alert the monitor. netmon.UpdateLastKnownDefaultRouteInterface(ifname) - if b.sys != nil { - if nm, ok := b.sys.NetMon.GetOK(); ok { - nm.InjectEvent() - } + if b.netMon != nil { + b.netMon.InjectEvent() + } else { + log.Printf("NetworkChanged: netMon is nil") } }