MCPcopy Create free account
hub / github.com/cortexproject/cortex / injectForwardedRequestMetadata

Function injectForwardedRequestMetadata

pkg/util/grpcutil/util.go:84–105  ·  view source on GitHub ↗

injectForwardedRequestMetadata implements HTTPHeaderPropagationClientInterceptor and HTTPHeaderPropagationStreamClientInterceptor by inserting headers that are supposed to be forwarded into metadata of the request

(ctx context.Context)

Source from the content-addressed store, hash-verified

82// injectForwardedRequestMetadata implements HTTPHeaderPropagationClientInterceptor and HTTPHeaderPropagationStreamClientInterceptor
83// by inserting headers that are supposed to be forwarded into metadata of the request
84func injectForwardedRequestMetadata(ctx context.Context) context.Context {
85 requestMetadataMap := requestmeta.MapFromContext(ctx)
86 if requestMetadataMap == nil {
87 return ctx
88 }
89 md, ok := metadata.FromOutgoingContext(ctx)
90 if !ok {
91 md = metadata.New(map[string]string{})
92 }
93
94 newCtx := ctx
95 if _, ok := md[requestmeta.PropagationStringForRequestMetadata]; !ok {
96 var mdContent []string
97 for requestMetadata, content := range requestMetadataMap {
98 mdContent = append(mdContent, requestMetadata, content)
99 }
100 md = md.Copy()
101 md[requestmeta.PropagationStringForRequestMetadata] = mdContent
102 newCtx = metadata.NewOutgoingContext(ctx, md)
103 }
104 return newCtx
105}

Calls 2

MapFromContextFunction · 0.92
CopyMethod · 0.45