Commit d6d8a997 authored by Chris O'Haver's avatar Chris O'Haver Committed by GitHub

plugin/kubernetes: fix SOA response for non-apex queries (#4592)

* fix SOA response for non-apex queries
Signed-off-by: default avatarChris O'Haver <cohaver@infoblox.com>

* handle mixed case
Signed-off-by: default avatarChris O'Haver <cohaver@infoblox.com>

* do full string compare
Signed-off-by: default avatarChris O'Haver <cohaver@infoblox.com>
parent e1931d48
......@@ -43,7 +43,9 @@ func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.M
case dns.TypeSRV:
records, extra, err = plugin.SRV(ctx, &k, zone, state, plugin.Options{})
case dns.TypeSOA:
records, err = plugin.SOA(ctx, &k, zone, state, plugin.Options{})
if qname == zone {
records, err = plugin.SOA(ctx, &k, zone, state, plugin.Options{})
}
case dns.TypeAXFR, dns.TypeIXFR:
return dns.RcodeRefused, nil
case dns.TypeNS:
......@@ -82,7 +84,6 @@ func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.M
m.Authoritative = true
m.Answer = append(m.Answer, records...)
m.Extra = append(m.Extra, extra...)
w.WriteMsg(m)
return dns.RcodeSuccess, nil
}
......
......@@ -38,6 +38,13 @@ var dnsPreserveCaseCases = []test.Case{
test.A("svc1.testns.svc.cLuStEr.LoCaL. 5 IN A 10.0.0.1"),
},
},
{
Qname: "Cluster.local.", Qtype: dns.TypeSOA,
Rcode: dns.RcodeSuccess,
Answer: []dns.RR{
test.SOA("Cluster.local. 5 IN SOA ns.dns.Cluster.local. hostmaster.Cluster.local. 1499347823 7200 1800 86400 5"),
},
},
}
func TestPreserveCase(t *testing.T) {
......
......@@ -396,6 +396,13 @@ var dnsTestCases = []test.Case{
test.AAAA("svc-dual-stack.testns.svc.cluster.local. 5 IN AAAA 10::3"),
},
},
{
Qname: "svc1.testns.svc.cluster.local.", Qtype: dns.TypeSOA,
Rcode: dns.RcodeSuccess,
Ns: []dns.RR{
test.SOA("cluster.local. 5 IN SOA ns.dns.cluster.local. hostmaster.cluster.local. 1499347823 7200 1800 86400 5"),
},
},
}
func TestServeDNS(t *testing.T) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment