Final fix
Add the domain as it is needed (multiple domains on a home net is niche) Only replace the record if a local one was found Use proper slice updating
This commit is contained in:
parent
ac0ef71d9f
commit
e34b880a55
@ -546,15 +546,15 @@ func (s *Server) handleRequest(w dns.ResponseWriter, r *dns.Msg) {
|
|||||||
}
|
}
|
||||||
if len(in.Answer) > 1 {
|
if len(in.Answer) > 1 {
|
||||||
if in.Answer[0].Header().Rrtype == dns.TypeCNAME {
|
if in.Answer[0].Header().Rrtype == dns.TypeCNAME {
|
||||||
for _, rr := range in.Answer {
|
for i, rr := range in.Answer {
|
||||||
if rr != nil && rr.Header() != nil && rr.Header().Rrtype == dns.TypeA {
|
if rr != nil && rr.Header() != nil && rr.Header().Rrtype == dns.TypeA {
|
||||||
if newRR, err := s.resolveSubname("", dns.Question{strings.ToLower(rr.Header().Name), dns.TypeA, dns.ClassINET}); err == nil {
|
newRR, err := s.resolveSubname(string(s.domain), dns.Question{strings.ToLower(rr.Header().Name), dns.TypeA, dns.ClassINET})
|
||||||
in.Answer[len(in.Answer)-1] = newRR
|
if err == nil && newRR != nil {
|
||||||
|
in.Answer[i] = newRR
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
w.WriteMsg(in)
|
w.WriteMsg(in)
|
||||||
if idx > 0 {
|
if idx > 0 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user