Source File
peer.go
Belonging Package
google.golang.org/grpc/peer
/*** Copyright 2014 gRPC authors.** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.**/// Package peer defines various peer information associated with RPCs and// corresponding utils.package peerimport ()// Peer contains the information of the peer for an RPC, such as the address// and authentication information.type Peer struct {// Addr is the peer address.Addr net.Addr// LocalAddr is the local address.LocalAddr net.Addr// AuthInfo is the authentication information of the transport.// It is nil if there is no transport security being used.AuthInfo credentials.AuthInfo}// String ensures the Peer types implements the Stringer interface in order to// allow to print a context with a peerKey value effectively.func ( *Peer) () string {if == nil {return "Peer<nil>"}:= &strings.Builder{}.WriteString("Peer{")if .Addr != nil {fmt.Fprintf(, "Addr: '%s', ", .Addr.String())} else {fmt.Fprintf(, "Addr: <nil>, ")}if .LocalAddr != nil {fmt.Fprintf(, "LocalAddr: '%s', ", .LocalAddr.String())} else {fmt.Fprintf(, "LocalAddr: <nil>, ")}if .AuthInfo != nil {fmt.Fprintf(, "AuthInfo: '%s'", .AuthInfo.AuthType())} else {fmt.Fprintf(, "AuthInfo: <nil>")}.WriteString("}")return .String()}type peerKey struct{}// NewContext creates a new context with peer information attached.func ( context.Context, *Peer) context.Context {return context.WithValue(, peerKey{}, )}// FromContext returns the peer information in ctx if it exists.func ( context.Context) ( *Peer, bool) {, = .Value(peerKey{}).(*Peer)return}
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64)