Add test case for qname validation, fix impl

This commit is contained in:
Tim Hockin
2015-05-13 16:28:48 -07:00
parent e1a153e841
commit 71d375e22f
3 changed files with 14 additions and 11 deletions

View File

@@ -31,20 +31,21 @@ var qualifiedNameRegexp = regexp.MustCompile("^" + QualifiedNameFmt + "$")
func IsQualifiedName(value string) bool {
parts := strings.Split(value, "/")
var left, right string
var name string
switch len(parts) {
case 1:
left, right = "", parts[0]
name = parts[0]
case 2:
left, right = parts[0], parts[1]
var prefix string
prefix, name = parts[0], parts[1]
if prefix == "" || !IsDNS1123Subdomain(prefix) {
return false
}
default:
return false
}
if left != "" && !IsDNS1123Subdomain(left) {
return false
}
return right != "" && len(right) <= QualifiedNameMaxLength && qualifiedNameRegexp.MatchString(right)
return name != "" && len(name) <= QualifiedNameMaxLength && qualifiedNameRegexp.MatchString(name)
}
const LabelValueFmt string = "(" + QualifiedNameFmt + ")?"