support mocking spongebob dns encoding

This commit is contained in:
cynic 2024-08-18 20:57:28 +00:00
parent 4a163fde36
commit 6a10139785

View File

@ -146,8 +146,9 @@ func (s *MeshnameServer) handleMeshnameRequest(w dns.ResponseWriter, r *dns.Msg)
rm.RecursionDesired = true rm.RecursionDesired = true
rm.Question = questions rm.Question = questions
// always use lowercase internally among meshname instances // always use lowercase internally among meshname instances
rm.Question[0].Name = strings.ToLower(rm.Question[0].Name) originalQuestionName := rm.Question[0].Name
s.log.Debugln(rm.Question[0].Name) // DEBUG // mocking spongebob dns encoding
rm.Question[0].Name = strings.ToLower(originalQuestionName)
// add alternative port number // add alternative port number
portNumbers := []string{"53"} portNumbers := []string{"53"}
portNumbers = append([]string{s.acmePort}, portNumbers...) // TODO: rename acmePort to alternativePort portNumbers = append([]string{s.acmePort}, portNumbers...) // TODO: rename acmePort to alternativePort
@ -159,6 +160,8 @@ func (s *MeshnameServer) handleMeshnameRequest(w dns.ResponseWriter, r *dns.Msg)
// if we had success we don't keep trying other ports // if we had success we don't keep trying other ports
if err == nil { if err == nil {
s.log.Debugln(resp.String()) s.log.Debugln(resp.String())
// mocking spongebob dns encoding
resp.Answer[0].Header().Name = originalQuestionName
m.Answer = append(m.Answer, resp.Answer...) m.Answer = append(m.Answer, resp.Answer...)
m.Ns = append(m.Ns, resp.Ns...) m.Ns = append(m.Ns, resp.Ns...)
m.Extra = append(m.Extra, resp.Extra...) m.Extra = append(m.Extra, resp.Extra...)