mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 10:13:14 -04:00 
			
		
		
		
	pkg/response: add extra test for impossible msg (#2727)
Add another test case for impossible DNS messages which should not be cached. This adds a check for a message that denies its own existence. Fixes #2724. Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
		| @@ -42,12 +42,24 @@ func TestTypifyRRSIG(t *testing.T) { | ||||
| 	} | ||||
|  | ||||
| 	m = delegationMsgRRSIGFail() | ||||
| 	m = addOpt(m) | ||||
| 	m.Extra = append(m.Extra, test.OPT(4096, true)) | ||||
| 	if mt, _ := Typify(m, utc); mt != OtherError { | ||||
| 		t.Errorf("Message is wrongly typified, expected OtherError, got %s", mt) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestTypifyImpossible(t *testing.T) { | ||||
| 	// create impossible message that denies it's own existence | ||||
| 	m := new(dns.Msg) | ||||
| 	m.SetQuestion("bar.www.example.org.", dns.TypeAAAA) | ||||
| 	m.Rcode = dns.RcodeNameError                                                      // name does not exist | ||||
| 	m.Answer = []dns.RR{test.CNAME("bar.www.example.org. IN CNAME foo.example.org.")} // but we add a cname with the name! | ||||
| 	mt, _ := Typify(m, time.Now().UTC()) | ||||
| 	if mt != OtherError { | ||||
| 		t.Errorf("Impossible message not typified as OtherError, got %s", mt) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func delegationMsg() *dns.Msg { | ||||
| 	return &dns.Msg{ | ||||
| 		Ns: []dns.RR{ | ||||
| @@ -77,8 +89,3 @@ func delegationMsgRRSIGFail() *dns.Msg { | ||||
| 	) | ||||
| 	return del | ||||
| } | ||||
|  | ||||
| func addOpt(m *dns.Msg) *dns.Msg { | ||||
| 	m.Extra = append(m.Extra, test.OPT(4096, true)) | ||||
| 	return m | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user