Added testcase for in-valid.co.uk
Camelcased: fqdn2zone to fqdnToZone Grammatical fix in externally visible error message
This commit is contained in:
parent
4945919c69
commit
8b90b1a380
3 changed files with 22 additions and 13 deletions
|
@ -18,7 +18,7 @@ type preCheckDNSFunc func(fqdn, value string) (bool, error)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
preCheckDNS preCheckDNSFunc = checkDNSPropagation
|
preCheckDNS preCheckDNSFunc = checkDNSPropagation
|
||||||
fqdn2zone = map[string]string{}
|
fqdnToZone = map[string]string{}
|
||||||
)
|
)
|
||||||
|
|
||||||
var recursiveNameserver = "google-public-dns-a.google.com:53"
|
var recursiveNameserver = "google-public-dns-a.google.com:53"
|
||||||
|
@ -185,7 +185,7 @@ func lookupNameservers(fqdn string) ([]string, error) {
|
||||||
// findZoneByFqdn determines the zone of the given fqdn
|
// findZoneByFqdn determines the zone of the given fqdn
|
||||||
func findZoneByFqdn(fqdn, nameserver string) (string, error) {
|
func findZoneByFqdn(fqdn, nameserver string) (string, error) {
|
||||||
// Do we have it cached?
|
// Do we have it cached?
|
||||||
if zone, ok := fqdn2zone[fqdn]; ok {
|
if zone, ok := fqdnToZone[fqdn]; ok {
|
||||||
return zone, nil
|
return zone, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,9 +210,9 @@ func findZoneByFqdn(fqdn, nameserver string) (string, error) {
|
||||||
// If we ended up on one of the TLDs, it means the domain did not exist.
|
// If we ended up on one of the TLDs, it means the domain did not exist.
|
||||||
publicsuffix, _ := publicsuffix.PublicSuffix(unFqdn(zone))
|
publicsuffix, _ := publicsuffix.PublicSuffix(unFqdn(zone))
|
||||||
if publicsuffix == unFqdn(zone) {
|
if publicsuffix == unFqdn(zone) {
|
||||||
return "", fmt.Errorf("Could not determine zone authoritively")
|
return "", fmt.Errorf("Could not determine zone authoritatively")
|
||||||
}
|
}
|
||||||
fqdn2zone[fqdn] = zone
|
fqdnToZone[fqdn] = zone
|
||||||
return zone, nil
|
return zone, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -225,9 +225,9 @@ func findZoneByFqdn(fqdn, nameserver string) (string, error) {
|
||||||
// If we ended up on one of the TLDs, it means the domain did not exist.
|
// If we ended up on one of the TLDs, it means the domain did not exist.
|
||||||
publicsuffix, _ := publicsuffix.PublicSuffix(unFqdn(zone))
|
publicsuffix, _ := publicsuffix.PublicSuffix(unFqdn(zone))
|
||||||
if publicsuffix == unFqdn(zone) {
|
if publicsuffix == unFqdn(zone) {
|
||||||
return "", fmt.Errorf("Could not determine zone authoritively")
|
return "", fmt.Errorf("Could not determine zone authoritatively")
|
||||||
}
|
}
|
||||||
fqdn2zone[fqdn] = zone
|
fqdnToZone[fqdn] = zone
|
||||||
return zone, nil
|
return zone, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -252,6 +252,11 @@ func unFqdn(name string) string {
|
||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// clearFqdnCache clears the cache of fqdn to zone mappings. Primarily used in testing.
|
||||||
|
func clearFqdnCache() {
|
||||||
|
fqdnToZone = map[string]string{}
|
||||||
|
}
|
||||||
|
|
||||||
// waitFor polls the given function 'f', once every 'interval' seconds, up to 'timeout' seconds.
|
// waitFor polls the given function 'f', once every 'interval' seconds, up to 'timeout' seconds.
|
||||||
func waitFor(timeout, interval int, f func() (bool, error)) error {
|
func waitFor(timeout, interval int, f func() (bool, error)) error {
|
||||||
var lastErr string
|
var lastErr string
|
||||||
|
|
|
@ -26,7 +26,7 @@ var (
|
||||||
var reqChan = make(chan *dns.Msg, 10)
|
var reqChan = make(chan *dns.Msg, 10)
|
||||||
|
|
||||||
func TestRFC2136CanaryLocalTestServer(t *testing.T) {
|
func TestRFC2136CanaryLocalTestServer(t *testing.T) {
|
||||||
fqdn2zone = map[string]string{}
|
clearFqdnCache()
|
||||||
dns.HandleFunc("example.com.", serverHandlerHello)
|
dns.HandleFunc("example.com.", serverHandlerHello)
|
||||||
defer dns.HandleRemove("example.com.")
|
defer dns.HandleRemove("example.com.")
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ func TestRFC2136CanaryLocalTestServer(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRFC2136ServerSuccess(t *testing.T) {
|
func TestRFC2136ServerSuccess(t *testing.T) {
|
||||||
fqdn2zone = map[string]string{}
|
clearFqdnCache()
|
||||||
dns.HandleFunc(rfc2136TestZone, serverHandlerReturnSuccess)
|
dns.HandleFunc(rfc2136TestZone, serverHandlerReturnSuccess)
|
||||||
defer dns.HandleRemove(rfc2136TestZone)
|
defer dns.HandleRemove(rfc2136TestZone)
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ func TestRFC2136ServerSuccess(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRFC2136ServerError(t *testing.T) {
|
func TestRFC2136ServerError(t *testing.T) {
|
||||||
fqdn2zone = map[string]string{}
|
clearFqdnCache()
|
||||||
dns.HandleFunc(rfc2136TestZone, serverHandlerReturnErr)
|
dns.HandleFunc(rfc2136TestZone, serverHandlerReturnErr)
|
||||||
defer dns.HandleRemove(rfc2136TestZone)
|
defer dns.HandleRemove(rfc2136TestZone)
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ func TestRFC2136ServerError(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRFC2136TsigClient(t *testing.T) {
|
func TestRFC2136TsigClient(t *testing.T) {
|
||||||
fqdn2zone = map[string]string{}
|
clearFqdnCache()
|
||||||
dns.HandleFunc(rfc2136TestZone, serverHandlerReturnSuccess)
|
dns.HandleFunc(rfc2136TestZone, serverHandlerReturnSuccess)
|
||||||
defer dns.HandleRemove(rfc2136TestZone)
|
defer dns.HandleRemove(rfc2136TestZone)
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ func TestRFC2136TsigClient(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRFC2136ValidUpdatePacket(t *testing.T) {
|
func TestRFC2136ValidUpdatePacket(t *testing.T) {
|
||||||
fqdn2zone = map[string]string{}
|
clearFqdnCache()
|
||||||
dns.HandleFunc(rfc2136TestZone, serverHandlerPassBackRequest)
|
dns.HandleFunc(rfc2136TestZone, serverHandlerPassBackRequest)
|
||||||
defer dns.HandleRemove(rfc2136TestZone)
|
defer dns.HandleRemove(rfc2136TestZone)
|
||||||
|
|
||||||
|
|
|
@ -35,11 +35,15 @@ var lookupNameserversTestsErr = []struct {
|
||||||
}{
|
}{
|
||||||
// invalid tld
|
// invalid tld
|
||||||
{"_null.n0n0.",
|
{"_null.n0n0.",
|
||||||
"Could not determine zone authoritively",
|
"Could not determine zone authoritatively",
|
||||||
},
|
},
|
||||||
// invalid domain
|
// invalid domain
|
||||||
{"_null.com.",
|
{"_null.com.",
|
||||||
"Could not determine zone authoritively",
|
"Could not determine zone authoritatively",
|
||||||
|
},
|
||||||
|
// invalid domain
|
||||||
|
{"in-valid.co.uk.",
|
||||||
|
"Could not determine zone authoritatively",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue