11package xresolver
22
33import (
4+ "strings"
5+
46 "google.golang.org/grpc/resolver"
57
68 "github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
@@ -19,39 +21,41 @@ type clientConn struct {
1921 trace trace.Driver
2022}
2123
24+ func (c * clientConn ) Endpoint () string {
25+ endpoint := c .target .URL .Path
26+ if endpoint == "" {
27+ endpoint = c .target .URL .Opaque
28+ }
29+ return strings .TrimPrefix (endpoint , "/" )
30+ }
31+
2232func (c * clientConn ) UpdateState (state resolver.State ) (err error ) {
23- onDone := trace .DriverOnResolve (
24- c .trace ,
25- //nolint:staticcheck
26- //nolint:nolintlint
27- c .target .Endpoint ,
28- func () (addrs []string ) {
29- for _ , a := range state .Addresses {
30- addrs = append (addrs , a .Addr )
31- }
32- return
33- }(),
34- )
33+ onDone := trace .DriverOnResolve (c .trace , c .Endpoint (), func () (addrs []string ) {
34+ for _ , a := range state .Addresses {
35+ addrs = append (addrs , a .Addr )
36+ }
37+ return
38+ }())
3539 defer func () {
3640 onDone (err )
3741 }()
38- return xerrors .WithStackTrace (c .ClientConn .UpdateState (state ))
42+ err = c .ClientConn .UpdateState (state )
43+ if err != nil {
44+ return xerrors .WithStackTrace (err )
45+ }
46+ return nil
3947}
4048
4149func (d * dnsBuilder ) Build (
4250 target resolver.Target ,
4351 cc resolver.ClientConn ,
4452 opts resolver.BuildOptions ,
4553) (resolver.Resolver , error ) {
46- return d .Builder .Build (
47- target ,
48- & clientConn {
49- ClientConn : cc ,
50- target : target ,
51- trace : d .trace ,
52- },
53- opts ,
54- )
54+ return d .Builder .Build (target , & clientConn {
55+ ClientConn : cc ,
56+ target : target ,
57+ trace : d .trace ,
58+ }, opts )
5559}
5660
5761func (d * dnsBuilder ) Scheme () string {
0 commit comments