blob: 32c9b59033cd1ec58e3617e7f4b657431b724906 [file] [log] [blame]
khenaidoo5fc5cea2021-08-11 17:39:16 -04001/*
2 * Copyright 2021 gRPC authors.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package credentials
18
19import (
20 "context"
21)
22
23// requestInfoKey is a struct to be used as the key to store RequestInfo in a
24// context.
25type requestInfoKey struct{}
26
27// NewRequestInfoContext creates a context with ri.
28func NewRequestInfoContext(ctx context.Context, ri interface{}) context.Context {
29 return context.WithValue(ctx, requestInfoKey{}, ri)
30}
31
32// RequestInfoFromContext extracts the RequestInfo from ctx.
33func RequestInfoFromContext(ctx context.Context) interface{} {
34 return ctx.Value(requestInfoKey{})
35}
36
37// clientHandshakeInfoKey is a struct used as the key to store
38// ClientHandshakeInfo in a context.
39type clientHandshakeInfoKey struct{}
40
41// ClientHandshakeInfoFromContext extracts the ClientHandshakeInfo from ctx.
42func ClientHandshakeInfoFromContext(ctx context.Context) interface{} {
43 return ctx.Value(clientHandshakeInfoKey{})
44}
45
46// NewClientHandshakeInfoContext creates a context with chi.
47func NewClientHandshakeInfoContext(ctx context.Context, chi interface{}) context.Context {
48 return context.WithValue(ctx, clientHandshakeInfoKey{}, chi)
49}