in proxy/protocol/grpc/server.go [156:183]
func (hs *httpServer) listenAndServe(addr string, t *tls.Config, h http.HandlerFunc) error {
ln, err := net.Listen("tcp", addr)
if err != nil {
return err
}
if t != nil {
lnTLS := tls.NewListener(ln, t)
ln = lnTLS
}
mux := http.NewServeMux()
mux.HandleFunc("/", h)
hs.server = &http2.Server{}
opts := &http2.ServeConnOpts{
Handler: mux,
}
go func() {
for {
conn, err := ln.Accept()
if err != nil {
panic(err)
}
hs.server.ServeConn(conn, opts)
}
}()
return nil
}