cubefs

Форк
0
51 строка · 1.5 Кб
1
/*
2
 *
3
 * Copyright 2014 gRPC authors.
4
 *
5
 * Licensed under the Apache License, Version 2.0 (the "License");
6
 * you may not use this file except in compliance with the License.
7
 * You may obtain a copy of the License at
8
 *
9
 *     http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 *
17
 */
18

19
// Package peer defines various peer information associated with RPCs and
20
// corresponding utils.
21
package peer
22

23
import (
24
	"context"
25
	"net"
26

27
	"google.golang.org/grpc/credentials"
28
)
29

30
// Peer contains the information of the peer for an RPC, such as the address
31
// and authentication information.
32
type Peer struct {
33
	// Addr is the peer address.
34
	Addr net.Addr
35
	// AuthInfo is the authentication information of the transport.
36
	// It is nil if there is no transport security being used.
37
	AuthInfo credentials.AuthInfo
38
}
39

40
type peerKey struct{}
41

42
// NewContext creates a new context with peer information attached.
43
func NewContext(ctx context.Context, p *Peer) context.Context {
44
	return context.WithValue(ctx, peerKey{}, p)
45
}
46

47
// FromContext returns the peer information in ctx if it exists.
48
func FromContext(ctx context.Context) (p *Peer, ok bool) {
49
	p, ok = ctx.Value(peerKey{}).(*Peer)
50
	return
51
}
52

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.