@@ 16,8 16,20 @@ func parseQuery(m *dns.Msg, r *dns.Msg) {
for _, q := range m.Question {
switch q.Qtype {
case dns.TypeA:
- log.Printf("[felu/dns] Query for '%s'", q.Name)
- m.SetRcode(r, dns.RcodeNameError)
+ handleARecord(&q, m, r)
}
}
}
+
+func handleARecord(q *dns.Question, m *dns.Msg, r *dns.Msg) {
+ log.Printf("[felu/dns] Query for '%s'", q.Name)
+
+ // fetch from db here
+ // if found do this:
+ //m.Answer = append(m.Answer, &dns,A{
+ // Hdr: dns.RR_Header{ Name: q.Name, Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: 60 },
+ // A: net.ParseIP(THEIPGOTTENFROMDBLOLOLOLO)
+ //}
+ // else, do this:
+ m.SetRcode(r, dns.RcodeNameError)
+}