address comments
This commit is contained in:
parent
baa5062803
commit
76cc595ed8
|
|
@ -483,12 +483,12 @@ func main() {
|
||||||
if *maxMsgSz > 0 {
|
if *maxMsgSz > 0 {
|
||||||
opts = append(opts, grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(*maxMsgSz)))
|
opts = append(opts, grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(*maxMsgSz)))
|
||||||
}
|
}
|
||||||
network := "tcp"
|
if isUnixSocket != nil && isUnixSocket() && !strings.HasPrefix(target, "unix://") {
|
||||||
if isUnixSocket != nil && isUnixSocket() {
|
// prepend unix:// to the address if it's not already there
|
||||||
network = "unix"
|
// this is to maintain backwards compatibility because the custom dialer is replaced by
|
||||||
if *authority == "" {
|
// the default dialer in grpc-go.
|
||||||
*authority = "localhost"
|
// https://github.com/fullstorydev/grpcurl/pull/480
|
||||||
}
|
target = "unix://" + target
|
||||||
}
|
}
|
||||||
var creds credentials.TransportCredentials
|
var creds credentials.TransportCredentials
|
||||||
if *plaintext {
|
if *plaintext {
|
||||||
|
|
@ -556,7 +556,7 @@ func main() {
|
||||||
|
|
||||||
blockingDialTiming := dialTiming.Child("BlockingDial")
|
blockingDialTiming := dialTiming.Child("BlockingDial")
|
||||||
defer blockingDialTiming.Done()
|
defer blockingDialTiming.Done()
|
||||||
cc, err := grpcurl.BlockingDial(ctx, network, target, creds, opts...)
|
cc, err := grpcurl.BlockingDial(ctx, "", target, creds, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fail(err, "Failed to dial target host %q", target)
|
fail(err, "Failed to dial target host %q", target)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
28
grpcurl.go
28
grpcurl.go
|
|
@ -645,6 +645,34 @@ func BlockingDial(ctx context.Context, network, address string, creds credential
|
||||||
writeResult: writeResult,
|
writeResult: writeResult,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch network {
|
||||||
|
case "":
|
||||||
|
// no-op, use address as-is
|
||||||
|
case "tcp":
|
||||||
|
if strings.HasPrefix(address, "unix://") {
|
||||||
|
return nil, fmt.Errorf("tcp network type cannot use unix address %s", address)
|
||||||
|
}
|
||||||
|
case "unix":
|
||||||
|
if !strings.HasPrefix(address, "unix://") {
|
||||||
|
// prepend unix:// to the address if it's not already there
|
||||||
|
// this is to maintain backwards compatibility because the custom dialer is replaced by
|
||||||
|
// the default dialer in grpc-go.
|
||||||
|
// https://github.com/fullstorydev/grpcurl/pull/480
|
||||||
|
address = "unix://" + address
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
// custom dialer for other networks
|
||||||
|
dialer := func(ctx context.Context, address string) (net.Conn, error) {
|
||||||
|
conn, err := (&net.Dialer{}).DialContext(ctx, network, address)
|
||||||
|
if err != nil {
|
||||||
|
// capture the error so we can provide a better message
|
||||||
|
writeResult(err)
|
||||||
|
}
|
||||||
|
return conn, err
|
||||||
|
}
|
||||||
|
opts = append([]grpc.DialOption{grpc.WithContextDialer(dialer)}, opts...)
|
||||||
|
}
|
||||||
|
|
||||||
// Even with grpc.FailOnNonTempDialError, this call will usually timeout in
|
// Even with grpc.FailOnNonTempDialError, this call will usually timeout in
|
||||||
// the face of TLS handshake errors. So we can't rely on grpc.WithBlock() to
|
// the face of TLS handshake errors. So we can't rely on grpc.WithBlock() to
|
||||||
// know when we're done. So we run it in a goroutine and then use result
|
// know when we're done. So we run it in a goroutine and then use result
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue