mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-29 01:04:15 -04:00 
			
		
		
		
	plugin/kubernetes: fix SOA response for non-apex queries (#4592)
* fix SOA response for non-apex queries Signed-off-by: Chris O'Haver <cohaver@infoblox.com> * handle mixed case Signed-off-by: Chris O'Haver <cohaver@infoblox.com> * do full string compare Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
This commit is contained in:
		| @@ -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: | ||||
| 		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) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user