From 4147cfdc1094844ad0090300f6827e663f30f67c Mon Sep 17 00:00:00 2001 From: Ramil Mirhasanov Date: Sat, 10 Dec 2022 12:19:20 +0300 Subject: [PATCH] resolver: cleanup of deprecated grpc resolver target.Endpoint field target.Endpoint and some other fields are deprecated, URL field is suggested to use instead path is required to be stripped of "/" prefix for naming/resolver to work porperly Signed-off-by: Ramil Mirhasanov --- client/v3/naming/resolver/resolver.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/client/v3/naming/resolver/resolver.go b/client/v3/naming/resolver/resolver.go index a44f61ae04cd..4c45ec9497fc 100644 --- a/client/v3/naming/resolver/resolver.go +++ b/client/v3/naming/resolver/resolver.go @@ -2,6 +2,7 @@ package resolver import ( "context" + "strings" "sync" clientv3 "go.etcd.io/etcd/client/v3" @@ -17,9 +18,15 @@ type builder struct { } func (b builder) Build(target gresolver.Target, cc gresolver.ClientConn, opts gresolver.BuildOptions) (gresolver.Resolver, error) { + // Refer to https://github.com/grpc/grpc-go/blob/16d3df80f029f57cff5458f1d6da6aedbc23545d/clientconn.go#L1587-L1611 + endpoint := target.URL.Path + if endpoint == "" { + endpoint = target.URL.Opaque + } + endpoint = strings.TrimPrefix(endpoint, "/") r := &resolver{ c: b.c, - target: target.Endpoint, + target: endpoint, cc: cc, } r.ctx, r.cancel = context.WithCancel(context.Background())