From 222281eb45ae81804ffacd429f1133bc0e5bb834 Mon Sep 17 00:00:00 2001 From: Tony An Date: Thu, 15 Jun 2023 12:19:04 -0700 Subject: [PATCH 1/3] removed strict dns check --- .../java/io/grpc/internal/DnsNameResolver.java | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/core/src/main/java/io/grpc/internal/DnsNameResolver.java b/core/src/main/java/io/grpc/internal/DnsNameResolver.java index 5ef6dd863c2..c2af61e638d 100644 --- a/core/src/main/java/io/grpc/internal/DnsNameResolver.java +++ b/core/src/main/java/io/grpc/internal/DnsNameResolver.java @@ -43,11 +43,9 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Random; -import java.util.Set; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; @@ -74,14 +72,6 @@ public class DnsNameResolver extends NameResolver { // From https://github.com/grpc/proposal/blob/master/A2-service-configs-in-dns.md static final String SERVICE_CONFIG_PREFIX = "grpc_config="; - private static final Set SERVICE_CONFIG_CHOICE_KEYS = - Collections.unmodifiableSet( - new HashSet<>( - Arrays.asList( - SERVICE_CONFIG_CHOICE_CLIENT_LANGUAGE_KEY, - SERVICE_CONFIG_CHOICE_PERCENTAGE_KEY, - SERVICE_CONFIG_CHOICE_CLIENT_HOSTNAME_KEY, - SERVICE_CONFIG_CHOICE_SERVICE_CONFIG_KEY))); // From https://github.com/grpc/proposal/blob/master/A2-service-configs-in-dns.md private static final String SERVICE_CONFIG_NAME_PREFIX = "_grpc_config."; @@ -488,10 +478,6 @@ private static long getNetworkAddressCacheTtlNanos(boolean isAndroid) { @VisibleForTesting static Map maybeChooseServiceConfig( Map choice, Random random, String hostname) { - for (Map.Entry entry : choice.entrySet()) { - Verify.verify(SERVICE_CONFIG_CHOICE_KEYS.contains(entry.getKey()), "Bad key: %s", entry); - } - List clientLanguages = getClientLanguagesFromChoice(choice); if (clientLanguages != null && !clientLanguages.isEmpty()) { boolean javaPresent = false; From d8b833be40df87dfa9b95666b52b8a9e3ec5d472 Mon Sep 17 00:00:00 2001 From: Tony An Date: Thu, 15 Jun 2023 12:19:40 -0700 Subject: [PATCH 2/3] removed outdated test case --- .../java/io/grpc/internal/DnsNameResolverTest.java | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/core/src/test/java/io/grpc/internal/DnsNameResolverTest.java b/core/src/test/java/io/grpc/internal/DnsNameResolverTest.java index 33b127a46bc..cde6bd597c7 100644 --- a/core/src/test/java/io/grpc/internal/DnsNameResolverTest.java +++ b/core/src/test/java/io/grpc/internal/DnsNameResolverTest.java @@ -886,16 +886,7 @@ public HttpConnectProxiedSocketAddress proxyFor(SocketAddress targetAddress) { assertEquals(0, fakeClock.numPendingTasks()); assertEquals(0, fakeExecutor.numPendingTasks()); } - - @Test - public void maybeChooseServiceConfig_failsOnMisspelling() { - Map bad = new LinkedHashMap<>(); - bad.put("parcentage", 1.0); - thrown.expectMessage("Bad key"); - - DnsNameResolver.maybeChooseServiceConfig(bad, new Random(), "host"); - } - + @Test public void maybeChooseServiceConfig_clientLanguageMatchesJava() { Map choice = new LinkedHashMap<>(); From caff34de261b975ab6958fee8352e9f58a200c5b Mon Sep 17 00:00:00 2001 From: Tony An Date: Tue, 20 Jun 2023 11:04:40 -0700 Subject: [PATCH 3/3] added test case --- .../test/java/io/grpc/internal/DnsNameResolverTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/src/test/java/io/grpc/internal/DnsNameResolverTest.java b/core/src/test/java/io/grpc/internal/DnsNameResolverTest.java index cde6bd597c7..e606de0e536 100644 --- a/core/src/test/java/io/grpc/internal/DnsNameResolverTest.java +++ b/core/src/test/java/io/grpc/internal/DnsNameResolverTest.java @@ -886,6 +886,14 @@ public HttpConnectProxiedSocketAddress proxyFor(SocketAddress targetAddress) { assertEquals(0, fakeClock.numPendingTasks()); assertEquals(0, fakeExecutor.numPendingTasks()); } + + @Test + public void maybeChooseServiceConfig_nullOnMispelling() { + Map bad = new LinkedHashMap<>(); + bad.put("parcentage", 1.0); + thrown.expectMessage("key '{parcentage=1.0}' missing in 'serviceConfig'"); + DnsNameResolver.maybeChooseServiceConfig(bad, new Random(), "host"); + } @Test public void maybeChooseServiceConfig_clientLanguageMatchesJava() {