Dont pass in dns proxy to override

Former-commit-id: 51dd927f9b
This commit is contained in:
Owen
2025-12-31 15:42:51 -05:00
parent aeb908b68c
commit 1b43f029a9
6 changed files with 19 additions and 36 deletions

View File

@@ -2,13 +2,11 @@
package olm package olm
import ( import "net/netip"
"github.com/fosrl/olm/dns"
)
// SetupDNSOverride is a no-op on Android // SetupDNSOverride is a no-op on Android
// Android handles DNS through the VpnService API at the Java/Kotlin layer // Android handles DNS through the VpnService API at the Java/Kotlin layer
func SetupDNSOverride(interfaceName string, dnsProxy *dns.DNSProxy) error { func SetupDNSOverride(interfaceName string, proxyIp netip.Addr) error {
return nil return nil
} }

View File

@@ -7,7 +7,6 @@ import (
"net/netip" "net/netip"
"github.com/fosrl/newt/logger" "github.com/fosrl/newt/logger"
"github.com/fosrl/olm/dns"
platform "github.com/fosrl/olm/dns/platform" platform "github.com/fosrl/olm/dns/platform"
) )
@@ -15,11 +14,7 @@ var configurator platform.DNSConfigurator
// SetupDNSOverride configures the system DNS to use the DNS proxy on macOS // SetupDNSOverride configures the system DNS to use the DNS proxy on macOS
// Uses scutil for DNS configuration // Uses scutil for DNS configuration
func SetupDNSOverride(interfaceName string, dnsProxy *dns.DNSProxy) error { func SetupDNSOverride(interfaceName string, proxyIp netip.Addr) error {
if dnsProxy == nil {
return fmt.Errorf("DNS proxy is nil")
}
var err error var err error
configurator, err = platform.NewDarwinDNSConfigurator() configurator, err = platform.NewDarwinDNSConfigurator()
if err != nil { if err != nil {
@@ -38,7 +33,7 @@ func SetupDNSOverride(interfaceName string, dnsProxy *dns.DNSProxy) error {
// Set new DNS servers to point to our proxy // Set new DNS servers to point to our proxy
newDNS := []netip.Addr{ newDNS := []netip.Addr{
dnsProxy.GetProxyIP(), proxyIp,
} }
logger.Info("Setting DNS servers to: %v", newDNS) logger.Info("Setting DNS servers to: %v", newDNS)

View File

@@ -2,12 +2,10 @@
package olm package olm
import ( import "net/netip"
"github.com/fosrl/olm/dns"
)
// SetupDNSOverride is a no-op on iOS as DNS configuration is handled by the system // SetupDNSOverride is a no-op on iOS as DNS configuration is handled by the system
func SetupDNSOverride(interfaceName string, dnsProxy *dns.DNSProxy) error { func SetupDNSOverride(interfaceName string, proxyIp netip.Addr) error {
return nil return nil
} }

View File

@@ -7,7 +7,6 @@ import (
"net/netip" "net/netip"
"github.com/fosrl/newt/logger" "github.com/fosrl/newt/logger"
"github.com/fosrl/olm/dns"
platform "github.com/fosrl/olm/dns/platform" platform "github.com/fosrl/olm/dns/platform"
) )
@@ -15,11 +14,7 @@ var configurator platform.DNSConfigurator
// SetupDNSOverride configures the system DNS to use the DNS proxy on Linux/FreeBSD // SetupDNSOverride configures the system DNS to use the DNS proxy on Linux/FreeBSD
// Detects the DNS manager by reading /etc/resolv.conf and verifying runtime availability // Detects the DNS manager by reading /etc/resolv.conf and verifying runtime availability
func SetupDNSOverride(interfaceName string, dnsProxy *dns.DNSProxy) error { func SetupDNSOverride(interfaceName string, proxyIp netip.Addr) error {
if dnsProxy == nil {
return fmt.Errorf("DNS proxy is nil")
}
var err error var err error
// Detect which DNS manager is in use by checking /etc/resolv.conf and runtime availability // Detect which DNS manager is in use by checking /etc/resolv.conf and runtime availability
@@ -32,7 +27,7 @@ func SetupDNSOverride(interfaceName string, dnsProxy *dns.DNSProxy) error {
configurator, err = platform.NewSystemdResolvedDNSConfigurator(interfaceName) configurator, err = platform.NewSystemdResolvedDNSConfigurator(interfaceName)
if err == nil { if err == nil {
logger.Info("Using systemd-resolved DNS configurator") logger.Info("Using systemd-resolved DNS configurator")
return setDNS(dnsProxy, configurator) return setDNS(proxyIp, configurator)
} }
logger.Warn("Failed to create systemd-resolved configurator: %v, falling back", err) logger.Warn("Failed to create systemd-resolved configurator: %v, falling back", err)
@@ -40,7 +35,7 @@ func SetupDNSOverride(interfaceName string, dnsProxy *dns.DNSProxy) error {
configurator, err = platform.NewNetworkManagerDNSConfigurator(interfaceName) configurator, err = platform.NewNetworkManagerDNSConfigurator(interfaceName)
if err == nil { if err == nil {
logger.Info("Using NetworkManager DNS configurator") logger.Info("Using NetworkManager DNS configurator")
return setDNS(dnsProxy, configurator) return setDNS(proxyIp, configurator)
} }
logger.Warn("Failed to create NetworkManager configurator: %v, falling back", err) logger.Warn("Failed to create NetworkManager configurator: %v, falling back", err)
@@ -48,7 +43,7 @@ func SetupDNSOverride(interfaceName string, dnsProxy *dns.DNSProxy) error {
configurator, err = platform.NewResolvconfDNSConfigurator(interfaceName) configurator, err = platform.NewResolvconfDNSConfigurator(interfaceName)
if err == nil { if err == nil {
logger.Info("Using resolvconf DNS configurator") logger.Info("Using resolvconf DNS configurator")
return setDNS(dnsProxy, configurator) return setDNS(proxyIp, configurator)
} }
logger.Warn("Failed to create resolvconf configurator: %v, falling back", err) logger.Warn("Failed to create resolvconf configurator: %v, falling back", err)
} }
@@ -60,11 +55,11 @@ func SetupDNSOverride(interfaceName string, dnsProxy *dns.DNSProxy) error {
} }
logger.Info("Using file-based DNS configurator") logger.Info("Using file-based DNS configurator")
return setDNS(dnsProxy, configurator) return setDNS(proxyIp, configurator)
} }
// setDNS is a helper function to set DNS and log the results // setDNS is a helper function to set DNS and log the results
func setDNS(dnsProxy *dns.DNSProxy, conf platform.DNSConfigurator) error { func setDNS(proxyIp netip.Addr, conf platform.DNSConfigurator) error {
// Get current DNS servers before changing // Get current DNS servers before changing
currentDNS, err := conf.GetCurrentDNS() currentDNS, err := conf.GetCurrentDNS()
if err != nil { if err != nil {
@@ -75,7 +70,7 @@ func setDNS(dnsProxy *dns.DNSProxy, conf platform.DNSConfigurator) error {
// Set new DNS servers to point to our proxy // Set new DNS servers to point to our proxy
newDNS := []netip.Addr{ newDNS := []netip.Addr{
dnsProxy.GetProxyIP(), proxyIp,
} }
logger.Info("Setting DNS servers to: %v", newDNS) logger.Info("Setting DNS servers to: %v", newDNS)

View File

@@ -7,7 +7,6 @@ import (
"net/netip" "net/netip"
"github.com/fosrl/newt/logger" "github.com/fosrl/newt/logger"
"github.com/fosrl/olm/dns"
platform "github.com/fosrl/olm/dns/platform" platform "github.com/fosrl/olm/dns/platform"
) )
@@ -15,11 +14,7 @@ var configurator platform.DNSConfigurator
// SetupDNSOverride configures the system DNS to use the DNS proxy on Windows // SetupDNSOverride configures the system DNS to use the DNS proxy on Windows
// Uses registry-based configuration (automatically extracts interface GUID) // Uses registry-based configuration (automatically extracts interface GUID)
func SetupDNSOverride(interfaceName string, dnsProxy *dns.DNSProxy) error { func SetupDNSOverride(interfaceName string, proxyIp netip.Addr) error {
if dnsProxy == nil {
return fmt.Errorf("DNS proxy is nil")
}
var err error var err error
configurator, err = platform.NewWindowsDNSConfigurator(interfaceName) configurator, err = platform.NewWindowsDNSConfigurator(interfaceName)
if err != nil { if err != nil {
@@ -38,7 +33,7 @@ func SetupDNSOverride(interfaceName string, dnsProxy *dns.DNSProxy) error {
// Set new DNS servers to point to our proxy // Set new DNS servers to point to our proxy
newDNS := []netip.Addr{ newDNS := []netip.Addr{
dnsProxy.GetProxyIP(), proxyIp,
} }
logger.Info("Setting DNS servers to: %v", newDNS) logger.Info("Setting DNS servers to: %v", newDNS)

View File

@@ -439,10 +439,12 @@ func StartTunnel(config TunnelConfig) {
if config.OverrideDNS { if config.OverrideDNS {
// Set up DNS override to use our DNS proxy // Set up DNS override to use our DNS proxy
if err := dnsOverride.SetupDNSOverride(interfaceName, dnsProxy); err != nil { if err := dnsOverride.SetupDNSOverride(interfaceName, dnsProxy.GetProxyIP()); err != nil {
logger.Error("Failed to setup DNS override: %v", err) logger.Error("Failed to setup DNS override: %v", err)
return return
} }
network.SetDNSServers([]string{dnsProxy.GetProxyIP().String()})
} }
apiServer.SetRegistered(true) apiServer.SetRegistered(true)