From b39cd8404be30ae4306ee33b00a1b6f511aff96b Mon Sep 17 00:00:00 2001 From: Greg Steuck Date: Sun, 14 Dec 2025 15:56:48 -0800 Subject: [PATCH] Fix duplicate search line entries on OpenBSD Fix https://github.com/tailscale/tailscale/issues/12360 Signed-off-by: Greg Steuck --- net/dns/manager.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/net/dns/manager.go b/net/dns/manager.go index 4441c4f69..077f36cfd 100644 --- a/net/dns/manager.go +++ b/net/dns/manager.go @@ -423,7 +423,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