MCPcopy
hub / github.com/grpc/grpc-go / newHTTP2Transport

Method newHTTP2Transport

server.go:1013–1051  ·  view source on GitHub ↗

newHTTP2Transport sets up a http/2 transport (using the gRPC http2 server transport in transport/http2_server.go).

(c net.Conn)

Source from the content-addressed store, hash-verified

1011// newHTTP2Transport sets up a http/2 transport (using the
1012// gRPC http2 server transport in transport/http2_server.go).
1013func (s *Server) newHTTP2Transport(c net.Conn) transport.ServerTransport {
1014 config := &transport.ServerConfig{
1015 MaxStreams: s.opts.maxConcurrentStreams,
1016 ConnectionTimeout: s.opts.connectionTimeout,
1017 Credentials: s.opts.creds,
1018 InTapHandle: s.opts.inTapHandle,
1019 StatsHandler: s.statsHandler,
1020 KeepaliveParams: s.opts.keepaliveParams,
1021 KeepalivePolicy: s.opts.keepalivePolicy,
1022 InitialWindowSize: s.opts.initialWindowSize,
1023 InitialConnWindowSize: s.opts.initialConnWindowSize,
1024 WriteBufferSize: s.opts.writeBufferSize,
1025 ReadBufferSize: s.opts.readBufferSize,
1026 SharedWriteBuffer: s.opts.sharedWriteBuffer,
1027 ChannelzParent: s.channelz,
1028 MaxHeaderListSize: s.opts.maxHeaderListSize,
1029 HeaderTableSize: s.opts.headerTableSize,
1030 BufferPool: s.opts.bufferPool,
1031 StaticWindowSize: s.opts.staticWindowSize,
1032 }
1033 st, err := transport.NewServerTransport(c, config)
1034 if err != nil {
1035 s.mu.Lock()
1036 s.errorf("NewServerTransport(%q) failed: %v", c.RemoteAddr(), err)
1037 s.mu.Unlock()
1038 // ErrConnDispatched means that the connection was dispatched away from
1039 // gRPC; those connections should be left open.
1040 if err != credentials.ErrConnDispatched {
1041 // Don't log on ErrConnDispatched and io.EOF to prevent log spam.
1042 if err != io.EOF {
1043 channelz.Info(logger, s.channelz, "grpc: Server.Serve failed to create ServerTransport: ", err)
1044 }
1045 c.Close()
1046 }
1047 return nil
1048 }
1049
1050 return st
1051}
1052
1053func (s *Server) serveStreams(ctx context.Context, st transport.ServerTransport, rawConn net.Conn) {
1054 ctx = transport.SetConnection(ctx, rawConn)

Callers 1

handleRawConnMethod · 0.95

Calls 7

errorfMethod · 0.95
NewServerTransportFunction · 0.92
InfoFunction · 0.92
CloseMethod · 0.65
LockMethod · 0.45
RemoteAddrMethod · 0.45
UnlockMethod · 0.45

Tested by

no test coverage detected