package core

import (
	"github.com/miekg/dns"
)

//HandleDNSRequest : Handle the DNS request using miekg/dns
//Requires dns.ReponseWriter and dns.Msg args
func HandleDNSRequest(w dns.ResponseWriter, r *dns.Msg) {

	//dns.Msg object
	//Will be passed to the parseQuery() function
	m := new(dns.Msg)
	m.SetReply(r)
	m.Compress = false

	if r.Question[0].Qtype == dns.TypeAXFR {
		parseAXFR(m)
	} else if r.Opcode == dns.OpcodeQuery { //Only respond to dns queries
		parseQuery(m)
	}

	w.WriteMsg(m) //Write the DNS response
}