talos

Форк
0
32 строки · 751.0 Байт
1
// This Source Code Form is subject to the terms of the Mozilla Public
2
// License, v. 2.0. If a copy of the MPL was not distributed with this
3
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
4

5
package client
6

7
import (
8
	"context"
9
	"net"
10

11
	"google.golang.org/grpc/peer"
12
)
13

14
// RemotePeer parses remote peer address from grpc stream context.
15
func RemotePeer(ctx context.Context) (peerHost string) {
16
	peerHost = "unknown"
17

18
	remote, ok := peer.FromContext(ctx)
19
	if ok {
20
		peerHost = AddrFromPeer(remote)
21
	}
22

23
	return
24
}
25

26
// AddrFromPeer extracts peer address from grpc Peer.
27
func AddrFromPeer(remote *peer.Peer) (peerHost string) {
28
	peerHost = remote.Addr.String()
29
	peerHost, _, _ = net.SplitHostPort(peerHost) //nolint:errcheck
30

31
	return peerHost
32
}
33

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

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

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

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