diff options
author | 2016-11-05 15:43:27 +0000 | |
---|---|---|
committer | 2016-11-05 15:43:27 +0000 | |
commit | 8d3418c01535f63129da2fe1ffd5ff8e4ceceb2d (patch) | |
tree | b36578d8d551e79810b504db8dac9550330c40d7 /middleware/kubernetes/handler.go | |
parent | 2cca527d9f17fd1595366545c47630bf35591873 (diff) | |
download | coredns-8d3418c01535f63129da2fe1ffd5ff8e4ceceb2d.tar.gz coredns-8d3418c01535f63129da2fe1ffd5ff8e4ceceb2d.tar.zst coredns-8d3418c01535f63129da2fe1ffd5ff8e4ceceb2d.zip |
BackendService: add Reverse method (#381)
Add a Reverse method to BackendService because different backends want
to to do diff. things. This allows etc/k8s to share even more code and
we can unify the PTR handling.
Diffstat (limited to 'middleware/kubernetes/handler.go')
-rw-r--r-- | middleware/kubernetes/handler.go | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/middleware/kubernetes/handler.go b/middleware/kubernetes/handler.go index eb3071b18..e21ea6d58 100644 --- a/middleware/kubernetes/handler.go +++ b/middleware/kubernetes/handler.go @@ -22,24 +22,6 @@ func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.M m.SetReply(r) m.Authoritative, m.RecursionAvailable, m.Compress = true, true, true - // TODO: find an alternative to this block - // TODO(miek): Why is this even here, why does the path Etcd takes not work? - // Should be a "case PTR" below. I would also like to use middleware.PTR for this. - ip := dnsutil.ExtractAddressFromReverse(state.Name()) - if ip != "" { - records := k.getServiceRecordForIP(ip, state.Name()) - if len(records) > 0 { - srvPTR := &records[0] - m.Answer = append(m.Answer, srvPTR.NewPTR(state.QName(), ip)) - - m = dnsutil.Dedup(m) - state.SizeAndDo(m) - m, _ = state.Scrub(m) - w.WriteMsg(m) - return dns.RcodeSuccess, nil - } - } - // Check that query matches one of the zones served by this middleware, // otherwise delegate to the next in the pipeline. zone := middleware.Zones(k.Zones).Matches(state.Name()) @@ -63,6 +45,8 @@ func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.M records, _, err = middleware.TXT(&k, zone, state, middleware.Options{}) case "CNAME": records, _, err = middleware.CNAME(&k, zone, state, middleware.Options{}) + case "PTR": + records, _, err = middleware.PTR(&k, zone, state, middleware.Options{}) case "MX": records, extra, _, err = middleware.MX(&k, zone, state, middleware.Options{}) case "SRV": |