ipn: add self to dns map

Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com>
This commit is contained in:
Dmytro Shynkevych 2020-07-14 18:48:36 -04:00
parent 3b36400e35
commit d9ac2ada45
No known key found for this signature in database
GPG Key ID: FF5E2F3DAD97EA23

View File

@ -462,18 +462,25 @@ func (b *LocalBackend) updateDNSMap(netMap *controlclient.NetworkMap) {
if netMap == nil { if netMap == nil {
return return
} }
domainToIP := make(map[string]netaddr.IP) domainToIP := make(map[string]netaddr.IP)
for _, peer := range netMap.Peers { set := func(hostname string, addrs []wgcfg.CIDR) {
if len(peer.Addresses) == 0 { if len(addrs) == 0 {
continue return
} }
domain := peer.Hostinfo.Hostname domain := hostname
// Like PeerStatus.SimpleHostName() // Like PeerStatus.SimpleHostName()
domain = strings.TrimSuffix(domain, ".local") domain = strings.TrimSuffix(domain, ".local")
domain = strings.TrimSuffix(domain, ".localdomain") domain = strings.TrimSuffix(domain, ".localdomain")
domain = domain + ".b.tailscale.net" 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)) b.e.SetDNSMap(tsdns.NewMap(domainToIP))
} }