allow callers of BlockingDial to override grpc.FailOnNonTempDialError dial option (#241)

This commit is contained in:
Joshua Humphries 2021-07-12 15:27:33 -04:00 committed by GitHub
parent f1d396c31e
commit de25c89822
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 5 deletions

View File

@ -635,11 +635,13 @@ func BlockingDial(ctx context.Context, network, address string, creds credential
// 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
// channel to either get the connection or fail-fast. // channel to either get the connection or fail-fast.
go func() { go func() {
opts = append(opts, // We put grpc.FailOnNonTempDialError *before* the explicitly provided
grpc.WithBlock(), // options so that it could be overridden.
grpc.FailOnNonTempDialError(true), opts = append([]grpc.DialOption{grpc.FailOnNonTempDialError(true)}, opts...)
grpc.WithContextDialer(dialer), // But we don't want caller to be able to override these two, so we put
) // them *after* the explicitly provided options.
opts = append(opts, grpc.WithBlock(), grpc.WithContextDialer(dialer))
if creds == nil { if creds == nil {
opts = append(opts, grpc.WithInsecure()) opts = append(opts, grpc.WithInsecure())
} else { } else {