generate proper response for missing A record
This commit is contained in:
parent
17a8ed4414
commit
f7c594af5a
@ -162,13 +162,30 @@ func (s *MeshnameServer) handleMeshnameRequest(w dns.ResponseWriter, r *dns.Msg)
|
||||
func (s *MeshnameServer) handleMeshIPRequest(w dns.ResponseWriter, r *dns.Msg) {
|
||||
m := new(dns.Msg)
|
||||
m.SetReply(r)
|
||||
s.log.Debugln(r.String())
|
||||
m.Authoritative = true
|
||||
|
||||
for _, q := range r.Question {
|
||||
labels := dns.SplitDomainName(q.Name)
|
||||
|
||||
// handle A type properly
|
||||
if q.Qtype == dns.TypeA {
|
||||
answer := new(dns.SOA)
|
||||
answer.Hdr = dns.RR_Header{Name: q.Name, Rrtype: dns.TypeSOA, Class: dns.ClassINET, Ttl: 3600}
|
||||
answer.Ns = "ns1.mesh.kyun.li."
|
||||
answer.Mbox = "ns2.mesh.kyun.li."
|
||||
answer.Serial = 2024061000
|
||||
answer.Refresh = 1200
|
||||
answer.Retry = 180
|
||||
answer.Expire = 1209600
|
||||
answer.Minttl = 600
|
||||
m.Ns = append(m.Ns, answer)
|
||||
s.log.Debugln(m)
|
||||
continue
|
||||
}
|
||||
|
||||
// resolve only AAAA type
|
||||
if q.Qtype != dns.TypeAAAA || q.Qclass != dns.ClassINET {
|
||||
s.log.Debugln("Error: invalid resource requested")
|
||||
//s.log.Debugln("Error: invalid resource requested")
|
||||
continue
|
||||
}
|
||||
|
||||
@ -176,8 +193,8 @@ func (s *MeshnameServer) handleMeshIPRequest(w dns.ResponseWriter, r *dns.Msg) {
|
||||
answer := new(dns.AAAA)
|
||||
answer.Hdr = dns.RR_Header{Name: q.Name, Rrtype: dns.TypeAAAA, Class: dns.ClassINET, Ttl: 3600}
|
||||
answer.AAAA = resolvedAddr
|
||||
|
||||
m.Answer = append(m.Answer, answer)
|
||||
s.log.Debugln(m)
|
||||
} else {
|
||||
s.log.Debugln(err)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user