diff --git a/management/server/nameserver.go b/management/server/nameserver.go index 8b88218a9..dcb4b7fe0 100644 --- a/management/server/nameserver.go +++ b/management/server/nameserver.go @@ -4,7 +4,6 @@ import ( "context" "errors" "regexp" - "strings" "unicode/utf8" "github.com/miekg/dns" @@ -20,7 +19,7 @@ import ( ) const ( - domainPattern = `^(?i)[\.\*a-z0-9]+([\-\.]{1}[a-z0-9]+)*[*.a-z]{1,}$` + domainPattern = `^(?i)[\*a-z0-9]+([\-\.]{1}[a-z0-9]+)*[*.a-z]{1,}$` maxLabelLen = 63 ) @@ -325,16 +324,7 @@ func validateDomain(domain string) error { return errors.New("domain should consists of only letters, numbers, and hyphens with no leading, trailing hyphens, or spaces") } - labels, valid := dns.IsDomainName(domain) - - // validate the TLD domains length - if labels == 0 && strings.HasPrefix(domain, ".") { - if len(domain)-1 > maxLabelLen { - return invalidDomainName - } - return nil - } - + _, valid := dns.IsDomainName(domain) if !valid { return invalidDomainName } diff --git a/management/server/nameserver_test.go b/management/server/nameserver_test.go index b8a65358f..eeab4c89f 100644 --- a/management/server/nameserver_test.go +++ b/management/server/nameserver_test.go @@ -903,16 +903,21 @@ func TestValidateDomain(t *testing.T) { domain: "example", errFunc: require.NoError, }, - { - name: "Valid top level domain", - domain: ".com", - errFunc: require.NoError, - }, { name: "Valid wildcard domain", domain: "*.example", errFunc: require.NoError, }, + { + name: "Invalid domain name with leading dot", + domain: ".com", + errFunc: require.Error, + }, + { + name: "Invalid domain name with dot only", + domain: ".", + errFunc: require.Error, + }, { name: "Invalid domain name with double hyphen", domain: "test--example.com", @@ -923,11 +928,6 @@ func TestValidateDomain(t *testing.T) { domain: "dnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdns.com", errFunc: require.Error, }, - { - name: "Invalid top level domain with exceeding 63 characters", - domain: ".dnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdnsdns", - errFunc: require.Error, - }, { name: "Invalid domain name starting with a hyphen", domain: "-example.com",