diff --git a/opts/opts.go b/opts/opts.go index cd720c9a92..e867c0a21d 100644 --- a/opts/opts.go +++ b/opts/opts.go @@ -211,7 +211,7 @@ func validateDomain(val string) (string, error) { return "", fmt.Errorf("%s is not a valid domain", val) } ns := domainRegexp.FindSubmatch([]byte(val)) - if len(ns) > 0 { + if len(ns) > 0 && len(ns[1]) < 255 { return string(ns[1]), nil } return "", fmt.Errorf("%s is not a valid domain", val) diff --git a/opts/opts_test.go b/opts/opts_test.go index 631d4c6b60..8370926da5 100644 --- a/opts/opts_test.go +++ b/opts/opts_test.go @@ -105,6 +105,7 @@ func TestValidateDnsSearch(t *testing.T) { `foo.bar-.baz`, `foo.-bar`, `foo.-bar.baz`, + `foo.bar.baz.this.should.fail.on.long.name.beause.it.is.longer.thanisshouldbethis.should.fail.on.long.name.beause.it.is.longer.thanisshouldbethis.should.fail.on.long.name.beause.it.is.longer.thanisshouldbethis.should.fail.on.long.name.beause.it.is.longer.thanisshouldbe`, } for _, domain := range valid {