From 28a253f14a18914b4b21d80546b4f5e11828a636 Mon Sep 17 00:00:00 2001 From: "Mark D. Roth" Date: Wed, 24 Feb 2021 15:39:58 -0800 Subject: [PATCH] add env var protection for google-c2p resolver (#25548) --- .../resolver/google_c2p/google_c2p_resolver.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc b/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc index 9f9b04decd4..d3b9e676916 100644 --- a/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +++ b/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc @@ -19,6 +19,7 @@ #include "src/core/ext/filters/client_channel/resolver_registry.h" #include "src/core/ext/xds/xds_client.h" #include "src/core/lib/gpr/env.h" +#include "src/core/lib/gpr/string.h" #include "src/core/lib/http/httpcli.h" #include "src/core/lib/iomgr/polling_entity.h" #include "src/core/lib/security/credentials/alts/check_gcp_environment.h" @@ -354,8 +355,14 @@ class GoogleCloud2ProdResolverFactory : public ResolverFactory { } // namespace void GoogleCloud2ProdResolverInit() { - ResolverRegistry::Builder::RegisterResolverFactory( - absl::make_unique()); + // TODO(roth): Remove env var protection once this code is proven stable. + UniquePtr value(gpr_getenv("GRPC_EXPERIMENTAL_GOOGLE_C2P_RESOLVER")); + bool parsed_value; + bool parse_succeeded = gpr_parse_bool_value(value.get(), &parsed_value); + if (parse_succeeded && parsed_value) { + ResolverRegistry::Builder::RegisterResolverFactory( + absl::make_unique()); + } } void GoogleCloud2ProdResolverShutdown() {}