From effaf6971b378404d583dcf23350aeb0a051ce30 Mon Sep 17 00:00:00 2001 From: Viktor Liu Date: Thu, 12 Jun 2025 18:46:27 +0200 Subject: [PATCH] Remove host manager restriction --- client/internal/dns/file_unix.go | 19 +++---------------- client/internal/dns/host.go | 2 -- client/internal/dns/resolvconf_unix.go | 12 +----------- client/internal/dns/server.go | 20 -------------------- 4 files changed, 4 insertions(+), 49 deletions(-) diff --git a/client/internal/dns/file_unix.go b/client/internal/dns/file_unix.go index 2fc606f56..7956d850c 100644 --- a/client/internal/dns/file_unix.go +++ b/client/internal/dns/file_unix.go @@ -43,22 +43,9 @@ func (f *fileConfigurator) supportCustomPort() bool { } func (f *fileConfigurator) applyDNSConfig(config HostDNSConfig, stateManager *statemanager.Manager) error { - backupFileExist := f.isBackupFileExist() - if !config.RouteAll { - if backupFileExist { - f.repair.stopWatchFileChanges() - err := f.restore() - if err != nil { - return fmt.Errorf("restoring the original resolv.conf file return err: %w", err) - } - } - return ErrRouteAllWithoutNameserverGroup - } - - if !backupFileExist { - err := f.backup() - if err != nil { - return fmt.Errorf("unable to backup the resolv.conf file: %w", err) + if !f.isBackupFileExist() { + if err := f.backup(); err != nil { + return fmt.Errorf("backup resolv.conf: %w", err) } } diff --git a/client/internal/dns/host.go b/client/internal/dns/host.go index dbf0f2cfc..783a3c5a9 100644 --- a/client/internal/dns/host.go +++ b/client/internal/dns/host.go @@ -11,8 +11,6 @@ import ( nbdns "github.com/netbirdio/netbird/dns" ) -var ErrRouteAllWithoutNameserverGroup = fmt.Errorf("unable to configure DNS for this peer using file manager without a nameserver group with all domains configured") - const ( ipv4ReverseZone = ".in-addr.arpa." ipv6ReverseZone = ".ip6.arpa." diff --git a/client/internal/dns/resolvconf_unix.go b/client/internal/dns/resolvconf_unix.go index 88cfa8cd7..88d2b691e 100644 --- a/client/internal/dns/resolvconf_unix.go +++ b/client/internal/dns/resolvconf_unix.go @@ -85,15 +85,6 @@ func (r *resolvconf) supportCustomPort() bool { } func (r *resolvconf) applyDNSConfig(config HostDNSConfig, stateManager *statemanager.Manager) error { - var err error - if !config.RouteAll { - err = r.restoreHostDNS() - if err != nil { - log.Errorf("restore host dns: %s", err) - } - return ErrRouteAllWithoutNameserverGroup - } - searchDomainList := searchDomains(config) searchDomainList = mergeSearchDomains(searchDomainList, r.originalSearchDomains) @@ -111,8 +102,7 @@ func (r *resolvconf) applyDNSConfig(config HostDNSConfig, stateManager *stateman log.Errorf("failed to update shutdown state: %s", err) } - err = r.applyConfig(buf) - if err != nil { + if err := r.applyConfig(buf); err != nil { return fmt.Errorf("apply config: %w", err) } diff --git a/client/internal/dns/server.go b/client/internal/dns/server.go index d316fb413..06467adcf 100644 --- a/client/internal/dns/server.go +++ b/client/internal/dns/server.go @@ -2,7 +2,6 @@ package dns import ( "context" - "errors" "fmt" "net/netip" "runtime" @@ -20,7 +19,6 @@ import ( "github.com/netbirdio/netbird/client/internal/listener" "github.com/netbirdio/netbird/client/internal/peer" "github.com/netbirdio/netbird/client/internal/statemanager" - cProto "github.com/netbirdio/netbird/client/proto" nbdns "github.com/netbirdio/netbird/dns" "github.com/netbirdio/netbird/management/domain" ) @@ -502,7 +500,6 @@ func (s *DefaultServer) applyHostConfig() { if err := s.hostManager.applyDNSConfig(config, s.stateManager); err != nil { log.Errorf("failed to apply DNS host manager update: %v", err) - s.handleErrNoGroupaAll(err) } s.registerFallback() @@ -550,23 +547,6 @@ func (s *DefaultServer) registerFallback() { s.registerHandler([]string{nbdns.RootZone}, handler, PriorityFallback) } -func (s *DefaultServer) handleErrNoGroupaAll(err error) { - if !errors.Is(ErrRouteAllWithoutNameserverGroup, err) { - return - } - - if s.statusRecorder == nil { - return - } - - s.statusRecorder.PublishEvent( - cProto.SystemEvent_WARNING, cProto.SystemEvent_DNS, - "The host dns manager does not support match domains", - "The host dns manager does not support match domains without a catch-all nameserver group.", - map[string]string{"manager": s.hostManager.string()}, - ) -} - func (s *DefaultServer) buildLocalHandlerUpdate(customZones []nbdns.CustomZone) ([]handlerWrapper, []nbdns.SimpleRecord, error) { var muxUpdates []handlerWrapper var localRecords []nbdns.SimpleRecord