Fix engine null pointer with mobile dependencies for other OS

This commit is contained in:
Pascal Fischer
2023-12-06 13:02:32 +01:00
parent 975e8e816a
commit 71f1cf80b8

View File

@@ -205,15 +205,14 @@ func (e *Engine) Start() error {
go e.mobileDep.DnsReadyListener.OnReady() go e.mobileDep.DnsReadyListener.OnReady()
} }
} else if e.dnsServer == nil { } else if e.dnsServer == nil {
e.dnsServer, err = dns.NewDefaultServer(e.ctx, e.wgInterface, e.config.CustomDNSAddress, e.mobileDep.InterfaceName, wgAddr) e.dnsServer, err = dns.NewDefaultServer(e.ctx, e.wgInterface, e.config.CustomDNSAddress, e.mobileDep.InterfaceName, wgAddr)
if err != nil { if err != nil {
e.close() e.close()
return err return err
} }
} }
e.routeManager = routemanager.NewManager(e.ctx, e.config.WgPrivateKey.PublicKey().String(), e.wgInterface, e.statusRecorder, routes) e.routeManager = routemanager.NewManager(e.ctx, e.config.WgPrivateKey.PublicKey().String(), e.wgInterface, e.statusRecorder, routes)
e.mobileDep.NetworkChangeListener.SetInterfaceIP(wgAddr)
e.routeManager.SetRouteChangeListener(e.mobileDep.NetworkChangeListener) e.routeManager.SetRouteChangeListener(e.mobileDep.NetworkChangeListener)
switch runtime.GOOS { switch runtime.GOOS {
@@ -224,6 +223,7 @@ func (e *Engine) Start() error {
SearchDomains: e.dnsServer.SearchDomains(), SearchDomains: e.dnsServer.SearchDomains(),
}) })
case "ios": case "ios":
e.mobileDep.NetworkChangeListener.SetInterfaceIP(wgAddr)
err = e.wgInterface.CreateOniOS(e.mobileDep.FileDescriptor) err = e.wgInterface.CreateOniOS(e.mobileDep.FileDescriptor)
default: default:
err = e.wgInterface.Create() err = e.wgInterface.Create()