mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 10:13:14 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			804 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			804 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package kubernetes
 | |
| 
 | |
| import (
 | |
| 	"net"
 | |
| 
 | |
| 	"github.com/coredns/coredns/middleware"
 | |
| 	"github.com/coredns/coredns/middleware/etcd/msg"
 | |
| 	"github.com/coredns/coredns/middleware/pkg/dnsutil"
 | |
| 	"github.com/coredns/coredns/request"
 | |
| )
 | |
| 
 | |
| // Reverse implements the ServiceBackend interface.
 | |
| func (k *Kubernetes) Reverse(state request.Request, exact bool, opt middleware.Options) ([]msg.Service, []msg.Service, error) {
 | |
| 
 | |
| 	ip := dnsutil.ExtractAddressFromReverse(state.Name())
 | |
| 	if ip == "" {
 | |
| 		return nil, nil, nil
 | |
| 	}
 | |
| 
 | |
| 	records := k.getServiceRecordForIP(ip, state.Name())
 | |
| 	return records, nil, nil
 | |
| }
 | |
| 
 | |
| func (k *Kubernetes) isRequestInReverseRange(name string) bool {
 | |
| 	ip := dnsutil.ExtractAddressFromReverse(name)
 | |
| 	for _, c := range k.ReverseCidrs {
 | |
| 		if c.Contains(net.ParseIP(ip)) {
 | |
| 			return true
 | |
| 		}
 | |
| 	}
 | |
| 	return false
 | |
| }
 |