From d9ac2ada45479fdded8b5427996b0d21261f4133 Mon Sep 17 00:00:00 2001 From: Dmytro Shynkevych Date: Tue, 14 Jul 2020 18:48:36 -0400 Subject: [PATCH] ipn: add self to dns map Signed-off-by: Dmytro Shynkevych --- ipn/local.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/ipn/local.go b/ipn/local.go index c2f852862..43a406077 100644 --- a/ipn/local.go +++ b/ipn/local.go @@ -462,18 +462,25 @@ func (b *LocalBackend) updateDNSMap(netMap *controlclient.NetworkMap) { if netMap == nil { return } + domainToIP := make(map[string]netaddr.IP) - for _, peer := range netMap.Peers { - if len(peer.Addresses) == 0 { - continue + set := func(hostname string, addrs []wgcfg.CIDR) { + if len(addrs) == 0 { + return } - domain := peer.Hostinfo.Hostname + domain := hostname // Like PeerStatus.SimpleHostName() domain = strings.TrimSuffix(domain, ".local") domain = strings.TrimSuffix(domain, ".localdomain") domain = domain + ".b.tailscale.net" - domainToIP[domain] = netaddr.IPFrom16(peer.Addresses[0].IP.Addr) + domainToIP[domain] = netaddr.IPFrom16(addrs[0].IP.Addr) } + + for _, peer := range netMap.Peers { + set(peer.Hostinfo.Hostname, peer.Addresses) + } + set(netMap.Hostinfo.Hostname, netMap.Addresses) + b.e.SetDNSMap(tsdns.NewMap(domainToIP)) }