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.Question = questions
// always use lowercase internally among meshname instances
rm.Question[0].Name = strings.ToLower(rm.Question[0].Name)
s.log.Debugln(rm.Question[0].Name) // DEBUG
originalQuestionName := rm.Question[0].Name
// mocking spongebob dns encoding
rm.Question[0].Name = strings.ToLower(originalQuestionName)
// add alternative port number
portNumbers := []string{"53"}
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 err == nil {
s.log.Debugln(resp.String())
// mocking spongebob dns encoding
resp.Answer[0].Header().Name = originalQuestionName
m.Answer = append(m.Answer, resp.Answer...)
m.Ns = append(m.Ns, resp.Ns...)
m.Extra = append(m.Extra, resp.Extra...)