From c45bfd418064d9c1f0d6dd0cc33e9657c6d2eae9 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Thu, 24 Jun 2021 12:57:26 -0700 Subject: [PATCH] wgengine: make dnsIPsOverTailscale also consider DefaultResolvers Found during a failed experiment debugging something on Android. Signed-off-by: Brad Fitzpatrick --- wgengine/userspace.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/wgengine/userspace.go b/wgengine/userspace.go index a1209761f..d5886960d 100644 --- a/wgengine/userspace.go +++ b/wgengine/userspace.go @@ -1392,7 +1392,7 @@ func ipInPrefixes(ip netaddr.IP, pp []netaddr.IPPrefix) bool { func dnsIPsOverTailscale(dnsCfg *dns.Config, routerCfg *router.Config) (ret []netaddr.IPPrefix) { m := map[netaddr.IP]bool{} - for _, resolvers := range dnsCfg.Routes { + add := func(resolvers []netaddr.IPPort) { for _, resolver := range resolvers { ip := resolver.IP() if ipInPrefixes(ip, routerCfg.Routes) && !ipInPrefixes(ip, routerCfg.LocalRoutes) { @@ -1401,6 +1401,11 @@ func dnsIPsOverTailscale(dnsCfg *dns.Config, routerCfg *router.Config) (ret []ne } } + add(dnsCfg.DefaultResolvers) + for _, resolvers := range dnsCfg.Routes { + add(resolvers) + } + ret = make([]netaddr.IPPrefix, 0, len(m)) for ip := range m { ret = append(ret, netaddr.IPPrefixFrom(ip, ip.BitLen()))