mirror of
https://github.com/tailscale/tailscale.git
synced 2026-02-19 07:04:43 -05:00
net/dns: write MagicDNS host names to the hosts file on domain-joined Windows machines
On domain-joined Windows devices the primary search domain (the one the device is joined to) always takes precedence over other search domains. This breaks MagicDNS when we are the primary resolver on the device (see #18712). To work around this Windows behavior, we should write MagicDNS host names the hosts file just as we do when we're not the primary resolver. This commit does exactly that. Fixes #18712 Signed-off-by: Nick Khyl <nickk@tailscale.com>
This commit is contained in:
@@ -399,7 +399,15 @@ func (m *windowsManager) SetDNS(cfg OSConfig) error {
|
||||
if err := m.setSplitDNS(resolvers, domains); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := m.setHosts(nil); err != nil {
|
||||
var hosts []*HostEntry
|
||||
if winenv.IsDomainJoined() {
|
||||
// On domain-joined Windows devices the primary search domain (the one the device is joined to)
|
||||
// always takes precedence over other search domains. This breaks MagicDNS when we are the primary
|
||||
// resolver on the device (see #18712). To work around this Windows behavior, we should write MagicDNS
|
||||
// host names the hosts file just as we do when we're not the primary resolver.
|
||||
hosts = cfg.Hosts
|
||||
}
|
||||
if err := m.setHosts(hosts); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := m.setPrimaryDNS(cfg.Nameservers, cfg.SearchDomains); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user