[#117] rpc: Allow to specify custom gRPC dialer
All checks were successful
DCO action / DCO (pull_request) Successful in 47s
Tests and linters / Tests with -race (pull_request) Successful in 1m19s
Tests and linters / Tests (pull_request) Successful in 1m30s
Tests and linters / Lint (pull_request) Successful in 3m40s

After grpc upgrade there is no DialContext call.
So connection is not actually established after created.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
Dmitrii Stepanov 2024-09-13 17:18:53 +03:00
parent c9782cf3ef
commit 6a81f3d404
4 changed files with 25 additions and 10 deletions

View file

@ -2,13 +2,16 @@ package client
import (
"context"
"google.golang.org/grpc"
)
// CallOption is a messaging session option within Protobuf RPC.
type CallOption func(*callParameters)
type callParameters struct {
ctx context.Context // nolint:containedctx
ctx context.Context // nolint:containedctx
dialer func(context.Context, grpc.ClientConnInterface) error
}
func defaultCallParameters() *callParameters {
@ -27,3 +30,11 @@ func WithContext(ctx context.Context) CallOption {
prm.ctx = ctx
}
}
// WithContext returns option to specify grpc dialer. If passed, it will be
// called after the connection is successfully created.
func WithDialer(dialer func(context.Context, grpc.ClientConnInterface) error) CallOption {
return func(prm *callParameters) {
prm.dialer = dialer
}
}