summaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-04-09 14:55:21 +0200
committerjonmv <venstad@gmail.com>2022-04-09 14:55:21 +0200
commit52d13729ce5760203025bda4d5022dcdbef3afd2 (patch)
tree431cc07b031e12f3997e3bbef38b3f81fd9a0ac6 /vespajlib
parentcb1eb57fa9707b1186f0aa10a0853780d7674742 (diff)
Domain names may end with ., but hostnames may not
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/src/main/java/ai/vespa/http/DomainName.java8
-rw-r--r--vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java2
2 files changed, 5 insertions, 5 deletions
diff --git a/vespajlib/src/main/java/ai/vespa/http/DomainName.java b/vespajlib/src/main/java/ai/vespa/http/DomainName.java
index 737f6b6d863..86242a1af0c 100644
--- a/vespajlib/src/main/java/ai/vespa/http/DomainName.java
+++ b/vespajlib/src/main/java/ai/vespa/http/DomainName.java
@@ -16,16 +16,16 @@ import static ai.vespa.validation.Validation.requireMatch;
public class DomainName extends PatternedStringWrapper<DomainName> {
protected static final Pattern labelPattern = Pattern.compile("([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])");
- protected static final Pattern domainNamePattern = Pattern.compile("(" + labelPattern + "\\.)*" + labelPattern);
+ protected static final Pattern domainNamePattern = Pattern.compile("(" + labelPattern + "\\.)*" + labelPattern + "\\.?");
public static final DomainName localhost = DomainName.of("localhost");
- protected DomainName(String value) {
- super(requireLength(value, "domain name length", 1, 255), domainNamePattern, "domain name");
+ protected DomainName(String value, String description) {
+ super(requireLength(value, "domain name length", 1, 255), domainNamePattern, description);
}
public static DomainName of(String value) {
- return new DomainName(value);
+ return new DomainName(value, "domain name");
}
public static String requireLabel(String label) {
diff --git a/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java b/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java
index aa19e8667f6..4575ab4e8c1 100644
--- a/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java
+++ b/vespajlib/src/test/java/ai/vespa/http/DomainNameTest.java
@@ -15,6 +15,7 @@ class DomainNameTest {
DomainName.of("name-123.0.321-eman");
DomainName.of(("." + "a".repeat(63)).repeat(4).substring(1));
DomainName.of("123");
+ DomainName.of("foo.");
assertThrows(IllegalArgumentException.class, () -> DomainName.of("_"));
assertThrows(IllegalArgumentException.class, () -> DomainName.of("-"));
@@ -22,7 +23,6 @@ class DomainNameTest {
assertThrows(IllegalArgumentException.class, () -> DomainName.of("-foo"));
assertThrows(IllegalArgumentException.class, () -> DomainName.of("foo-"));
assertThrows(IllegalArgumentException.class, () -> DomainName.of(".foo"));
- assertThrows(IllegalArgumentException.class, () -> DomainName.of("foo."));
assertThrows(IllegalArgumentException.class, () -> DomainName.of("foo..bar"));
assertThrows(IllegalArgumentException.class, () -> DomainName.of("foo.-.bar"));
assertThrows(IllegalArgumentException.class, () -> DomainName.of("foo/"));