From 9f31f76d02aeba94792b537e2cec527b700fd72c Mon Sep 17 00:00:00 2001 From: cynic Date: Sat, 25 May 2024 05:53:22 +0000 Subject: [PATCH] make meshname default, delegate to meship function if appropriate --- pkg/meshname/server.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pkg/meshname/server.go b/pkg/meshname/server.go index a8aabc5..859ee42 100644 --- a/pkg/meshname/server.go +++ b/pkg/meshname/server.go @@ -61,10 +61,6 @@ func (s *MeshnameServer) Start() error { Net: "udp", NotifyStartedFunc: func() { close(waitStarted) }, } - for tld, subnet := range s.networks { - dns.HandleFunc(tld, s.handleMeshnameRequest) - s.log.Debugln("Handling:", tld, subnet) - } if s.enableMeshIP { for mtld, subnet := range s.meshipNetworks { //dns.HandleFunc("meship", s.handleMeshIPRequest) @@ -73,6 +69,10 @@ func (s *MeshnameServer) Start() error { s.log.Debugln("Handling as meship:", mtld, subnet) } } + for tld, subnet := range s.networks { + dns.HandleFunc(tld, s.handleMeshnameRequest) + s.log.Debugln("Handling:", tld, subnet) + } go func() { if err := s.dnsServer.ListenAndServe(); err != nil { @@ -90,6 +90,7 @@ func (s *MeshnameServer) Start() error { } func (s *MeshnameServer) handleMeshnameRequest(w dns.ResponseWriter, r *dns.Msg) { + s.log.Debugln("== handleMeshnameRequest ==") var remoteLookups = make(map[string][]dns.Question) m := new(dns.Msg) m.SetReply(r) @@ -125,6 +126,11 @@ func (s *MeshnameServer) handleMeshnameRequest(w dns.ResponseWriter, r *dns.Msg) firstPartLabels := dns.SplitDomainName(firstPart) // define hostname ("subDomain") subDomain = firstPartLabels[len(firstPartLabels)-1] + s.log.Debugln(tld, domainParts, firstPart, firstPartLabels, subDomain) + if len(firstPartLabels) == 1 { + s.handleMeshIPRequest(w, r) + return + } } } //subDomain := labels[len(labels)-2] @@ -166,6 +172,7 @@ func (s *MeshnameServer) handleMeshnameRequest(w dns.ResponseWriter, r *dns.Msg) } func (s *MeshnameServer) handleMeshIPRequest(w dns.ResponseWriter, r *dns.Msg) { + s.log.Debugln("== handleMeshIPRequest ==") m := new(dns.Msg) m.SetReply(r) s.log.Debugln(r.String())