Extract makeDNSReply function

This commit is contained in:
Bryan Boreham committed 2014-10-02 16:12:10 +01:00
1 parent 673b420afa
commit b49eb5c2ac
1 file changed
+10 -5
+10 -5
View File
@@ -9,16 +9,21 @@ import (
var zone = new(weavedns.ZoneDb)
func handleLocal(w dns.ResponseWriter, r *dns.Msg) {
func makeDNSReply(r *dns.Msg, name string, addr net.IP) *dns.Msg {
m := new(dns.Msg)
m.SetReply(r)
hdr := dns.RR_Header{Name: name, Rrtype: dns.TypeA,
Class: dns.ClassINET, Ttl: 3600}
a := &dns.A{hdr, addr}
m.Answer = append(m.Answer, a)
return m
}
func handleLocal(w dns.ResponseWriter, r *dns.Msg) {
q := r.Question[0]
ip, err := zone.MatchLocal(q.Name)
if err == nil {
hdr := dns.RR_Header{Name: q.Name, Rrtype: dns.TypeA,
Class: dns.ClassINET, Ttl: 3600}
a := &dns.A{hdr, net.ParseIP(ip)}
m.Answer = append(m.Answer, a)
m := makeDNSReply(r, q.Name, net.ParseIP(ip))
w.WriteMsg(m)
} else {
log.Printf("Failed lookup for %s", q.Name)