proper support for mocking spongebob dns encoding

This commit is contained in:
cynic 2024-08-18 22:09:12 +00:00
parent 0de7bd35f3
commit ebc2393d96

View File

@ -147,7 +147,7 @@ func (s *MeshnameServer) handleMeshnameRequest(w dns.ResponseWriter, r *dns.Msg)
rm.Question = questions
// always use lowercase internally among meshname instances
originalQuestionName := rm.Question[0].Name
// mocking spongebob dns encoding
// mocking spongebob dns encoding support
rm.Question[0].Name = strings.ToLower(originalQuestionName)
// add alternative port number
portNumbers := []string{"53"}
@ -159,11 +159,12 @@ func (s *MeshnameServer) handleMeshnameRequest(w dns.ResponseWriter, r *dns.Msg)
resp, _, err := s.dnsClient.Exchange(rm, "["+remoteServer+"]:"+port)
// if we had success we don't keep trying other ports
if err == nil {
s.log.Debugln(resp.String())
if len(resp.Answer) > 0 {
// mocking spongebob dns encoding
// mocking spongebob dns encoding support
resp.Question[0].Name = originalQuestionName
resp.Answer[0].Header().Name = originalQuestionName
}
s.log.Debugln(resp.String())
m.Answer = append(m.Answer, resp.Answer...)
m.Ns = append(m.Ns, resp.Ns...)
m.Extra = append(m.Extra, resp.Extra...)