@@ -44,13 +44,14 @@ type Opt func(*clientConfig)
4444
4545// clientConfig is the configuration for the ChipIngressClient.
4646type clientConfig struct {
47- transportCredentials credentials.TransportCredentials
48- perRPCCredentials credentials.PerRPCCredentials
49- headerProvider HeaderProvider
50- insecureConnection bool
51- host string
52- meterProvider metric.MeterProvider
53- tracerProvider trace.TracerProvider
47+ transportCredentials credentials.TransportCredentials
48+ perRPCCredentials credentials.PerRPCCredentials
49+ headerProvider HeaderProvider
50+ insecureConnection bool
51+ host string
52+ meterProvider metric.MeterProvider
53+ tracerProvider trace.TracerProvider
54+ nopInfoHeaderProvider HeaderProvider
5455}
5556
5657func newClientConfig (host string ) * clientConfig {
@@ -59,8 +60,9 @@ func newClientConfig(host string) *clientConfig {
5960 perRPCCredentials : nil ,
6061 host : host ,
6162 // Default to insecure connection
62- insecureConnection : true ,
63- transportCredentials : insecure .NewCredentials (),
63+ insecureConnection : true ,
64+ transportCredentials : insecure .NewCredentials (),
65+ nopInfoHeaderProvider : nil ,
6466 }
6567 return cfg
6668}
@@ -116,6 +118,10 @@ func NewClient(address string, opts ...Opt) (Client, error) {
116118 // NOTE: not supporting streaming interceptors
117119 }
118120
121+ if cfg .nopInfoHeaderProvider != nil {
122+ grpcOpts = append (grpcOpts , grpc .WithUnaryInterceptor (newHeaderInterceptor (cfg .nopInfoHeaderProvider )))
123+ }
124+
119125 conn , err := grpc .NewClient (address , grpcOpts ... )
120126 if err != nil {
121127 return nil , err
@@ -226,6 +232,16 @@ func WithTracerProvider(provider trace.TracerProvider) Opt {
226232 return func (c * clientConfig ) { c .tracerProvider = provider }
227233}
228234
235+ func WithNOPLookup () Opt {
236+ return func (c * clientConfig ) {
237+ c .nopInfoHeaderProvider = HeaderProviderFunc (func (ctx context.Context ) (map [string ]string , error ) {
238+ return map [string ]string {
239+ "x-include-nop-info" : "true" ,
240+ }, nil
241+ })
242+ }
243+ }
244+
229245// newHeaderInterceptor creates a unary interceptor that adds headers from a HeaderProvider
230246func newHeaderInterceptor (provider HeaderProvider ) grpc.UnaryClientInterceptor {
231247 return func (ctx context.Context , method string , req , reply interface {}, cc * grpc.ClientConn , invoker grpc.UnaryInvoker , opts ... grpc.CallOption ) error {
0 commit comments