]> go.fuhry.dev Git - runtime.git/commitdiff
machines/coredns_plugin: fix erroneously case-sensitive hostname map
authorDan Fuhry <dan@fuhry.com>
Tue, 16 Apr 2024 12:40:46 +0000 (08:40 -0400)
committerDan Fuhry <dan@fuhry.com>
Tue, 16 Apr 2024 12:40:46 +0000 (08:40 -0400)
machines/coredns_plugin/registry.go
machines/coredns_plugin/registry_store.go

index 8ba93ae503d771db782c48f93e724d13432afa73..6615023fc77c0dcaee23ecd016726118438914bd 100644 (file)
@@ -202,7 +202,7 @@ func (r *registry) defaultDomain() *machines.Domain {
 }
 
 func (r *registry) domainFromQuestion(ques dns.Question) *machines.Domain {
-       qname := strings.TrimSuffix(ques.Name, ".")
+       qname := strings.ToLower(strings.TrimSuffix(ques.Name, "."))
        for _, domain := range r.store.Domains {
                if qname == domain.Name || strings.HasSuffix(qname, "."+domain.Name) {
                        return domain
@@ -254,7 +254,7 @@ func (r *registry) AdditionalRecords(ques dns.Question, answers []dns.RR) []dns.
 }
 
 func (r *registry) LookupRecord(ques dns.Question) (int, []dns.RR) {
-       qname := strings.TrimSuffix(ques.Name, ".")
+       qname := strings.ToLower(strings.TrimSuffix(ques.Name, "."))
        r.log.V(2).Debugf("LookupRecord(%s)", qname)
 
        if !r.store.initialized() {
@@ -692,7 +692,7 @@ func (r *registry) tryInit() error {
 
 func (r *Result) Answer(ques dns.Question) (int, []dns.RR) {
        answers := make([]dns.RR, 0)
-       qname := strings.TrimSuffix(ques.Name, ".")
+       qname := strings.ToLower(strings.TrimSuffix(ques.Name, "."))
 
        nameParts := strings.Split(qname, ".")
        basename := strings.ToLower(nameParts[0])
index de1f9e3e61480144c7446e057f28800473e841cf..a8019aa6e92f7eaa227829a55f912abeb8af116a 100644 (file)
@@ -5,6 +5,7 @@ import (
        "flag"
        "fmt"
        "os"
+       "strings"
        "sync"
 
        "go.fuhry.dev/runtime/constants"
@@ -166,6 +167,7 @@ func (rs *registryStore) fetch(client machines.MachinesClient) error {
        rs.HostNames = make(map[string]string)
        rs.Hosts = make(map[string]*machines.Host)
        for _, h := range hosts {
+               h.Name = strings.ToLower(h.Name)
                rs.Hosts[h.ID()] = h
                rs.HostNames[h.Name] = h.ID()
        }