From 6fd954f19c9b23ef549797bfea7940181dc9a705 Mon Sep 17 00:00:00 2001 From: Brad Beam Date: Thu, 8 Feb 2018 10:11:04 -0600 Subject: support for zone transfer for kubernetes (#1259) * plugin/kubernetes: axfr Hook up dynamic SOA serial by setting ResourceEventHandlerFuncs in dnsController. Add prototype of returns msg.Services via the Transfer function. Leave expanding this to RRs out of scope for a bit. * plugin/kubernetes: axfr Respond to AXFR queries * Fixing race condition * Fixing instantiation of dnstest writer * Updates from review --- plugin/kubernetes/handler.go | 3 +++ 1 file changed, 3 insertions(+) (limited to 'plugin/kubernetes/handler.go') diff --git a/plugin/kubernetes/handler.go b/plugin/kubernetes/handler.go index e02608a6b..5c9ccba34 100644 --- a/plugin/kubernetes/handler.go +++ b/plugin/kubernetes/handler.go @@ -53,6 +53,8 @@ func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.M break } fallthrough + case dns.TypeAXFR, dns.TypeIXFR: + k.Transfer(ctx, state) default: // Do a fake A lookup, so we can distinguish between NODATA and NXDOMAIN _, err = plugin.A(&k, zone, state, nil, plugin.Options{}) @@ -76,6 +78,7 @@ func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.M m.Extra = append(m.Extra, extra...) m = dnsutil.Dedup(m) + state.SizeAndDo(m) m, _ = state.Scrub(m) w.WriteMsg(m) -- cgit v1.2.3