infra
/
goutils
Archived
1
0
Fork 0
This repository has been archived on 2022-04-06. You can view files and clone it, but cannot push or open issues or pull requests.
goutils/net/ipv4_resolver_test.go

38 lines
856 B
Go

package net
import (
"testing"
"net"
"github.com/benburkert/dns"
)
func TestPreferIPV4Resolver(t *testing.T) {
var (
cli = &dns.Client{Resolver: &PreferIPV4Resolver{}}
addrs []net.IP
err error
)
addrs, err = net.LookupIP("www.v6.facebook.com")
if err == nil && len(addrs) != 0 && len(addrs[0]) == net.IPv6len {
err = nil
t.Log("checked AAAA dns reponse")
} else {
t.Fatal("unknown error : ", err)
}
net.DefaultResolver.PreferGo = true
net.DefaultResolver.Dial = cli.Dial
addrs, err = net.LookupIP("www.v6.facebook.com")
if len(addrs) != 0 {
t.Fatal("ipv6 address isn't empty")
} else if err == nil {
t.Fatal("no error in AAAA record")
} else if dnserr, ok := err.(*net.DNSError); !ok || dnserr.Err != "no such host" {
t.Fatal("unknown error : ", err)
} else {
err = nil
t.Log("AAAA dns request filtered")
}
}