You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polaris.apache.org by di...@apache.org on 2026/10/30 18:25:54 UTC
(polaris) branch main updated: Split resolv.conf search domains on any whitespace in the distributed cache resolver (#5932)
This is an automated email from the ASF dual-hosted git repository.
dimas-b pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push:
new 3d36ca421b Split resolv.conf search domains on any whitespace in the distributed cache resolver (#5932)
3d36ca421b is described below
commit 3d36ca421ba306f1194866f979a62307009babff
Author: Peter Rozsa <ro...@gmail.com>
AuthorDate: Fri Oct 30 19:25:48 2026 +0100
Split resolv.conf search domains on any whitespace in the distributed cache resolver (#5932)
ResolvConf split the "search" line on a single space character. Lines
using several spaces or tabs between domains, which resolv.conf permits,
produced empty or tab-joined entries that AddressResolver then used as
DNS search suffixes. Domains are now split on runs of whitespace and an
empty "search" line is ignored.
Assisted-By: Claude Fable 5.1 <no...@anthropic.com>
---
.../polaris/persistence/nosql/quarkus/distcache/ResolvConf.java | 6 +++++-
.../persistence/nosql/quarkus/distcache/TestResolvConf.java | 8 ++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/persistence/nosql/persistence/cdi/quarkus-distcache/src/main/java/org/apache/polaris/persistence/nosql/quarkus/distcache/ResolvConf.java b/persistence/nosql/persistence/cdi/quarkus-distcache/src/main/java/org/apache/polaris/persistence/nosql/quarkus/distcache/ResolvConf.java
index 6900097199..3b38f26658 100644
--- a/persistence/nosql/persistence/cdi/quarkus-distcache/src/main/java/org/apache/polaris/persistence/nosql/quarkus/distcache/ResolvConf.java
+++ b/persistence/nosql/persistence/cdi/quarkus-distcache/src/main/java/org/apache/polaris/persistence/nosql/quarkus/distcache/ResolvConf.java
@@ -96,7 +96,11 @@ final class ResolvConf {
}
if (ln.startsWith("search")) {
ln = ln.substring("search".length()).trim();
- searchList.addAll(Arrays.asList(ln.split(" ")));
+ if (ln.isEmpty()) {
+ continue;
+ }
+ // resolv.conf allows search domains to be separated by any amount of spaces or tabs
+ searchList.addAll(Arrays.asList(ln.split("\\s+")));
}
}
this.nameservers = unmodifiableList(nameservers);
diff --git a/persistence/nosql/persistence/cdi/quarkus-distcache/src/test/java/org/apache/polaris/persistence/nosql/quarkus/distcache/TestResolvConf.java b/persistence/nosql/persistence/cdi/quarkus-distcache/src/test/java/org/apache/polaris/persistence/nosql/quarkus/distcache/TestResolvConf.java
index 38a9555a66..f2e74bc791 100644
--- a/persistence/nosql/persistence/cdi/quarkus-distcache/src/test/java/org/apache/polaris/persistence/nosql/quarkus/distcache/TestResolvConf.java
+++ b/persistence/nosql/persistence/cdi/quarkus-distcache/src/test/java/org/apache/polaris/persistence/nosql/quarkus/distcache/TestResolvConf.java
@@ -103,6 +103,14 @@ public class TestResolvConf {
""",
List.of(new InetSocketAddress("127.0.0.1", 53), new InetSocketAddress("1.2.3.4", 53)),
List.of("search.domain", "anothersearch.anotherdomain")),
+ arguments(
+ "nameserver 127.0.0.1\nsearch search.domain \t another.domain\tthird.domain\n",
+ List.of(new InetSocketAddress("127.0.0.1", 53)),
+ List.of("search.domain", "another.domain", "third.domain")),
+ arguments(
+ "nameserver 127.0.0.1\nsearch\n",
+ List.of(new InetSocketAddress("127.0.0.1", 53)),
+ List.of()),
arguments("", List.of(), List.of()));
}
}