From b49eb5c2ac75fb13ed7acf36dcdc26a52f61abf6 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Thu, 2 Oct 2014 16:12:10 +0100 Subject: [PATCH] Extract makeDNSReply function --- dns/main.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/dns/main.go b/dns/main.go index a50815bd..2de4225b 100644 --- a/dns/main.go +++ b/dns/main.go @@ -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)