in mux.go [70:88]
func ConfigureServer(srv *http.Server, conf *http2.Server) (grpcListener net.Listener, _ error) {
if err := http2.ConfigureServer(srv, conf); err != nil {
return nil, err
}
if conf == nil {
conf = new(http2.Server)
}
glis := newChanListener()
mux := &mux{http2Server: conf, grpcListener: glis}
srv.Handler = mux.withGRPCInsecure(srv.Handler, srv.ErrorLog)
srv.TLSNextProto[http2.NextProtoTLS] = func(srv *http.Server, conn *tls.Conn, h http.Handler) {
err := mux.handleH2(srv, conn, h)
if err != nil && srv.ErrorLog != nil {
srv.ErrorLog.Printf("handleH2 (%s) returned an error: %s", conn.RemoteAddr(), err)
}
}
srv.RegisterOnShutdown(func() { glis.Close() })
return glis, nil
}