aboutsummaryrefslogtreecommitdiff
path: root/middleware/kubernetes/reverse.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-08-09 05:18:46 -0700
committerGravatar GitHub <noreply@github.com> 2017-08-09 05:18:46 -0700
commitdf1879f9ae27ea0faa5e129c071ad4aef02ebac2 (patch)
tree31bb84b940197daf5a09cc9c83f56e0432e68cca /middleware/kubernetes/reverse.go
parentbe037a32a5b05bf3e28ac04d369818ce524d3dca (diff)
downloadcoredns-df1879f9ae27ea0faa5e129c071ad4aef02ebac2.tar.gz
coredns-df1879f9ae27ea0faa5e129c071ad4aef02ebac2.tar.zst
coredns-df1879f9ae27ea0faa5e129c071ad4aef02ebac2.zip
middleware/kubernetes: put reverse function in own file (#863)
Move reverse function and (some) test code to reverse*.go
Diffstat (limited to 'middleware/kubernetes/reverse.go')
-rw-r--r--middleware/kubernetes/reverse.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/middleware/kubernetes/reverse.go b/middleware/kubernetes/reverse.go
new file mode 100644
index 000000000..3edb026f8
--- /dev/null
+++ b/middleware/kubernetes/reverse.go
@@ -0,0 +1,32 @@
+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
+}