mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 02:03:20 -04:00 
			
		
		
		
	A NSEC record is need to deny any other name that might exist. Also don't blindly perform the interface conversion when getting glue for NS records as they now may include RRSIG - also add tests for that.
		
			
				
	
	
		
			25 lines
		
	
	
		
			465 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			465 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package file
 | |
| 
 | |
| import (
 | |
| 	"github.com/miekg/coredns/middleware/file/tree"
 | |
| 
 | |
| 	"github.com/miekg/dns"
 | |
| )
 | |
| 
 | |
| // ClosestEncloser returns the closest encloser for qname.
 | |
| func (z *Zone) ClosestEncloser(qname string) (*tree.Elem, bool) {
 | |
| 
 | |
| 	offset, end := dns.NextLabel(qname, 0)
 | |
| 	for !end {
 | |
| 		elem, _ := z.Tree.Search(qname)
 | |
| 		if elem != nil {
 | |
| 			return elem, true
 | |
| 		}
 | |
| 		qname = qname[offset:]
 | |
| 
 | |
| 		offset, end = dns.NextLabel(qname, offset)
 | |
| 	}
 | |
| 
 | |
| 	return z.Tree.Search(z.origin)
 | |
| }
 |