core: Detect NameResolverProviders passed as Factories

This may help some to move closer to Providers. It especially helps
cases where `NameResolverFactory`s aren't returning `InetSocketAddress`,
as it allows them to override `getProducedSocketAddressTypes()`, which
will now fail starting in 15fc70be.
This commit is contained in:
Eric Anderson 2023-11-20 17:57:56 -08:00
parent c6d448e43f
commit 3b92333890
1 changed files with 5 additions and 1 deletions

View File

@ -382,7 +382,11 @@ public final class ManagedChannelImplBuilder
directServerAddress);
if (resolverFactory != null) {
NameResolverRegistry reg = new NameResolverRegistry();
reg.register(new NameResolverFactoryToProviderFacade(resolverFactory));
if (resolverFactory instanceof NameResolverProvider) {
reg.register((NameResolverProvider) resolverFactory);
} else {
reg.register(new NameResolverFactoryToProviderFacade(resolverFactory));
}
this.nameResolverRegistry = reg;
} else {
this.nameResolverRegistry = NameResolverRegistry.getDefaultRegistry();