plugin/hosts: fix for ipv4-in-ipv6 (#2506)
* fix for ipv4-in-ipv6 * update comment as requested
This commit is contained in:
parent
d571fbe046
commit
e343556687
2 changed files with 18 additions and 2 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue