mirror of https://github.com/grpc/grpc-go.git
resolver: always fall back to default resolver when target does not follow URI scheme (#1889)
Previously, any target with "://" would be handled according to the URI scheme even though it did not contain a third slash.
This commit is contained in:
parent
9aba04495f
commit
90dca43332
|
@ -54,7 +54,10 @@ func parseTarget(target string) (ret resolver.Target) {
|
|||
if !ok {
|
||||
return resolver.Target{Endpoint: target}
|
||||
}
|
||||
ret.Authority, ret.Endpoint, _ = split2(ret.Endpoint, "/")
|
||||
ret.Authority, ret.Endpoint, ok = split2(ret.Endpoint, "/")
|
||||
if !ok {
|
||||
return resolver.Target{Endpoint: target}
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
|
|
|
@ -53,7 +53,6 @@ func TestParseTargetString(t *testing.T) {
|
|||
want resolver.Target
|
||||
}{
|
||||
{"", resolver.Target{"", "", ""}},
|
||||
{"://", resolver.Target{"", "", ""}},
|
||||
{":///", resolver.Target{"", "", ""}},
|
||||
{"a:///", resolver.Target{"a", "", ""}},
|
||||
{"://a/", resolver.Target{"", "a", ""}},
|
||||
|
@ -70,6 +69,15 @@ func TestParseTargetString(t *testing.T) {
|
|||
{"google.com", resolver.Target{"", "", "google.com"}},
|
||||
{"google.com/?a=b", resolver.Target{"", "", "google.com/?a=b"}},
|
||||
{"/unix/socket/address", resolver.Target{"", "", "/unix/socket/address"}},
|
||||
|
||||
// If we can only parse part of the target.
|
||||
{"://", resolver.Target{"", "", "://"}},
|
||||
{"unix://domain", resolver.Target{"", "", "unix://domain"}},
|
||||
{"a:b", resolver.Target{"", "", "a:b"}},
|
||||
{"a/b", resolver.Target{"", "", "a/b"}},
|
||||
{"a:/b", resolver.Target{"", "", "a:/b"}},
|
||||
{"a//b", resolver.Target{"", "", "a//b"}},
|
||||
{"a://b", resolver.Target{"", "", "a://b"}},
|
||||
} {
|
||||
got := parseTarget(test.targetStr)
|
||||
if got != test.want {
|
||||
|
|
Loading…
Reference in New Issue