mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-30 17:53:21 -04:00 
			
		
		
		
	plugin/hosts: fix for ipv4-in-ipv6 (#2506)
* fix for ipv4-in-ipv6 * update comment as requested
This commit is contained in:
		
				
					committed by
					
						 Miek Gieben
						Miek Gieben
					
				
			
			
				
	
			
			
			
						parent
						
							d571fbe046
						
					
				
				
					commit
					e343556687
				
			| @@ -44,6 +44,12 @@ var hostsTestCases = []test.Case{ | ||||
| 			test.A("example.org. 3600	IN	A 10.0.0.1"), | ||||
| 		}, | ||||
| 	}, | ||||
| 	{ | ||||
| 		Qname: "example.com.", Qtype: dns.TypeA, | ||||
| 		Answer: []dns.RR{ | ||||
| 			test.A("example.com. 3600	IN	A 10.0.0.2"), | ||||
| 		}, | ||||
| 	}, | ||||
| 	{ | ||||
| 		Qname: "localhost.", Qtype: dns.TypeAAAA, | ||||
| 		Answer: []dns.RR{ | ||||
| @@ -56,6 +62,12 @@ var hostsTestCases = []test.Case{ | ||||
| 			test.PTR("1.0.0.10.in-addr.arpa. 3600 PTR example.org."), | ||||
| 		}, | ||||
| 	}, | ||||
| 	{ | ||||
| 		Qname: "2.0.0.10.in-addr.arpa.", Qtype: dns.TypePTR, | ||||
| 		Answer: []dns.RR{ | ||||
| 			test.PTR("2.0.0.10.in-addr.arpa. 3600 PTR example.com."), | ||||
| 		}, | ||||
| 	}, | ||||
| 	{ | ||||
| 		Qname: "1.0.0.127.in-addr.arpa.", Qtype: dns.TypePTR, | ||||
| 		Answer: []dns.RR{ | ||||
| @@ -76,4 +88,6 @@ var hostsTestCases = []test.Case{ | ||||
| const hostsExample = ` | ||||
| 127.0.0.1 localhost localhost.domain | ||||
| ::1 localhost localhost.domain | ||||
| 10.0.0.1 example.org` | ||||
| 10.0.0.1 example.org | ||||
| ::FFFF:10.0.0.2 example.com | ||||
| ` | ||||
|   | ||||
| @@ -185,8 +185,10 @@ func (h *Hostsfile) parse(r io.Reader, override *hostsMap) *hostsMap { | ||||
| } | ||||
|  | ||||
| // ipVersion returns what IP version was used textually | ||||
| // For why the string is parsed end to start, | ||||
| // see IPv4-Compatible IPv6 addresses - RFC 4291 section 2.5.5 | ||||
| func ipVersion(s string) int { | ||||
| 	for i := 0; i < len(s); i++ { | ||||
| 	for i := len(s) - 1; i >= 0; i-- { | ||||
| 		switch s[i] { | ||||
| 		case '.': | ||||
| 			return 4 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user