package middleware import ( "strings" "github.com/miekg/dns" ) type Zones []string // Matches checks to see if other matches p. The match will return the most // specific zones that matches other. The empty string signals a not found // condition. func (z Zones) Matches(qname string) string { zone := "" // TODO(miek): use IsSubDomain here? for _, zname := range z { if strings.HasSuffix(qname, zname) { if len(zname) > len(zone) { zone = zname } } } return zone } // Fully qualify all zones in z func (z Zones) FullyQualify() { for i, _ := range z { z[i] = dns.Fqdn(z[i]) } }