From e34b880a55f9d55c9c745be191f7834d91a61589 Mon Sep 17 00:00:00 2001 From: lordwelch Date: Sun, 23 May 2021 19:34:59 -0700 Subject: [PATCH] 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 --- internal/dns/dns.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/dns/dns.go b/internal/dns/dns.go index 89e5529..9bdc6bb 100644 --- a/internal/dns/dns.go +++ b/internal/dns/dns.go @@ -546,15 +546,15 @@ func (s *Server) handleRequest(w dns.ResponseWriter, r *dns.Msg) { } if len(in.Answer) > 1 { 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 newRR, err := s.resolveSubname("", dns.Question{strings.ToLower(rr.Header().Name), dns.TypeA, dns.ClassINET}); err == nil { - in.Answer[len(in.Answer)-1] = newRR + newRR, err := s.resolveSubname(string(s.domain), dns.Question{strings.ToLower(rr.Header().Name), dns.TypeA, dns.ClassINET}) + if err == nil && newRR != nil { + in.Answer[i] = newRR } } } } - } w.WriteMsg(in) if idx > 0 {