func answerA(q *dns.Question, v *DNSValue) dns.RR { answer := new(dns.A) answer.Header().Name = q.Name answer.Header().Rrtype = dns.TypeA answer.Header().Class = dns.ClassINET answer.A = net.ParseIP(v.Value) return answer }
func answerA(q dns.Question, value net.IP) dns.RR { answer := new(dns.A) answer.Header().Name = q.Name answer.Header().Rrtype = dns.TypeA answer.Header().Class = dns.ClassINET answer.A = value return answer }
func (s *SenseDNS) fillWithData(pairs api.KVPairs, network string) { zs := s.dnsServer.zones zs.Lock() defer zs.Unlock() key := s.dnsServer.getNetDomain(network) zs.store[key] = make(map[dns.RR_Header][]dns.RR) for _, value := range pairs { path := strings.Split(value.Key, "/") hostname := fmt.Sprintf("%s.%s.%s", path[3], network, s.dnsServer.networkTLD) ip := string(value.Value) rr := new(dns.A) rr.A = net.ParseIP(ip) rr.Hdr = dns.RR_Header{Name: dns.Fqdn(hostname), Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: 3600} key2 := dns.RR_Header{Name: dns.Fqdn(rr.Header().Name), Rrtype: rr.Header().Rrtype, Class: rr.Header().Class} zs.store[key][key2] = append(zs.store[key][key2], rr) } if log.Level == logrus.DebugLevel { s.dnsServer.printRoutingTable() } }