mirror of
				https://github.com/coredns/coredns.git
				synced 2025-11-04 03:03:14 -05: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
 | 
						|
}
 |