newHTTP2Transport sets up a http/2 transport (using the gRPC http2 server transport in transport/http2_server.go).
(c net.Conn)
| 1011 | // newHTTP2Transport sets up a http/2 transport (using the |
| 1012 | // gRPC http2 server transport in transport/http2_server.go). |
| 1013 | func (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 | |
| 1053 | func (s *Server) serveStreams(ctx context.Context, st transport.ServerTransport, rawConn net.Conn) { |
| 1054 | ctx = transport.SetConnection(ctx, rawConn) |
no test coverage detected