mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 18:23:13 -04:00 
			
		
		
		
	file/plugin: if there is a delegation use that (#1299)
Don't put NS records in the answer section; if we see it is delegated we should put the records in the AUTHORITY section. This removes a special case, which is good.
This commit is contained in:
		| @@ -25,7 +25,7 @@ var delegationTestCases = []test.Case{ | |||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		Qname: "delegated.miek.nl.", Qtype: dns.TypeNS, | 		Qname: "delegated.miek.nl.", Qtype: dns.TypeNS, | ||||||
| 		Answer: []dns.RR{ | 		Ns: []dns.RR{ | ||||||
| 			test.NS("delegated.miek.nl.	1800	IN	NS	a.delegated.miek.nl."), | 			test.NS("delegated.miek.nl.	1800	IN	NS	a.delegated.miek.nl."), | ||||||
| 			test.NS("delegated.miek.nl.	1800	IN	NS	ns-ext.nlnetlabs.nl."), | 			test.NS("delegated.miek.nl.	1800	IN	NS	ns-ext.nlnetlabs.nl."), | ||||||
| 		}, | 		}, | ||||||
| @@ -91,9 +91,12 @@ var secureDelegationTestCases = []test.Case{ | |||||||
| 	{ | 	{ | ||||||
| 		Qname: "delegated.example.org.", Qtype: dns.TypeNS, | 		Qname: "delegated.example.org.", Qtype: dns.TypeNS, | ||||||
| 		Do: true, | 		Do: true, | ||||||
| 		Answer: []dns.RR{ | 		Ns: []dns.RR{ | ||||||
|  | 			test.DS("delegated.example.org.	1800	IN	DS	10056 5 1 EE72CABD1927759CDDA92A10DBF431504B9E1F13"), | ||||||
|  | 			test.DS("delegated.example.org.	1800	IN	DS	10056 5 2 E4B05F87725FA86D9A64F1E53C3D0E6250946599DFE639C45955B0ED416CDDFA"), | ||||||
| 			test.NS("delegated.example.org.	1800	IN	NS	a.delegated.example.org."), | 			test.NS("delegated.example.org.	1800	IN	NS	a.delegated.example.org."), | ||||||
| 			test.NS("delegated.example.org.	1800	IN	NS	ns-ext.nlnetlabs.nl."), | 			test.NS("delegated.example.org.	1800	IN	NS	ns-ext.nlnetlabs.nl."), | ||||||
|  | 			test.RRSIG("delegated.example.org.	1800	IN	RRSIG	DS 13 3 1800 20161129153240 20161030153240 49035 example.org. rlNNzcUmtbjLSl02ZzQGUbWX75yCUx0Mug1jHtKVqRq1hpPE2S3863tIWSlz+W9wz4o19OI4jbznKKqk+DGKog=="), | ||||||
| 		}, | 		}, | ||||||
| 		Extra: []dns.RR{ | 		Extra: []dns.RR{ | ||||||
| 			test.OPT(4096, true), | 			test.OPT(4096, true), | ||||||
|   | |||||||
| @@ -128,11 +128,6 @@ func (z *Zone) Lookup(state request.Request, qname string) ([]dns.RR, []dns.RR, | |||||||
| 		// If we see NS records, it means the name as been delegated, and we should return the delegation. | 		// If we see NS records, it means the name as been delegated, and we should return the delegation. | ||||||
| 		if nsrrs := elem.Types(dns.TypeNS); nsrrs != nil { | 		if nsrrs := elem.Types(dns.TypeNS); nsrrs != nil { | ||||||
| 			glue := z.Glue(nsrrs, do) | 			glue := z.Glue(nsrrs, do) | ||||||
| 			// If qtype == NS, we should returns success to put RRs in answer. |  | ||||||
| 			if qtype == dns.TypeNS { |  | ||||||
| 				return nsrrs, nil, glue, Success |  | ||||||
| 			} |  | ||||||
|  |  | ||||||
| 			if do { | 			if do { | ||||||
| 				dss := z.typeFromElem(elem, dns.TypeDS, do) | 				dss := z.typeFromElem(elem, dns.TypeDS, do) | ||||||
| 				nsrrs = append(nsrrs, dss...) | 				nsrrs = append(nsrrs, dss...) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user