diff options
| author | Greg Steuck <greg@matx.com> | 2026-03-25 10:19:02 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-25 10:19:02 -0700 |
| commit | 954a2dfd31d345615b633771abe9b76defe2b2b3 (patch) | |
| tree | 8467be2f8d6c485b82f77bb1432bf6e2fae902f0 | |
| parent | 4f43ad3042103e4c2f5a4ac75d555b0d1e7119a9 (diff) | |
| download | tailscale-954a2dfd31d345615b633771abe9b76defe2b2b3.tar.xz tailscale-954a2dfd31d345615b633771abe9b76defe2b2b3.zip | |
net/dns: fix duplicate search line entries (OpenBSD, primarily)
Fixes #12360
Signed-off-by: Greg Steuck <greg@nest.cx>
| -rw-r--r-- | net/dns/manager.go | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/dns/manager.go b/net/dns/manager.go index 889c542cf..8daa13cbc 100644 --- a/net/dns/manager.go +++ b/net/dns/manager.go @@ -431,7 +431,14 @@ func (m *Manager) compileConfig(cfg Config) (rcfg resolver.Config, ocfg OSConfig defaultRoutes = append(defaultRoutes, &dnstype.Resolver{Addr: ip.String()}) } rcfg.Routes["."] = defaultRoutes - ocfg.SearchDomains = append(ocfg.SearchDomains, baseCfg.SearchDomains...) + // Append base config search domains, but only if not already present. + // This prevents duplicates when GetBaseConfig() reads back domains that + // Tailscale itself previously wrote to resolv.conf. + for _, domain := range baseCfg.SearchDomains { + if !slices.Contains(ocfg.SearchDomains, domain) { + ocfg.SearchDomains = append(ocfg.SearchDomains, domain) + } + } } return rcfg, ocfg, nil |
