http3: use HTTP/2 as the default protocol in ListenAndServe (#3673)

This commit is contained in:
mstmdev
2023-01-24 09:48:35 +08:00
committed by GitHub
parent 58cedf7a4f
commit bbeea8dca0

View File

@@ -720,19 +720,6 @@ func ListenAndServe(addr, certFile, keyFile string, handler http.Handler) error
}
defer udpConn.Close()
tcpAddr, err := net.ResolveTCPAddr("tcp", addr)
if err != nil {
return err
}
tcpConn, err := net.ListenTCP("tcp", tcpAddr)
if err != nil {
return err
}
defer tcpConn.Close()
tlsConn := tls.NewListener(tcpConn, config)
defer tlsConn.Close()
if handler == nil {
handler = http.DefaultServeMux
}
@@ -741,17 +728,14 @@ func ListenAndServe(addr, certFile, keyFile string, handler http.Handler) error
TLSConfig: config,
Handler: handler,
}
httpServer := &http.Server{
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
quicServer.SetQuicHeaders(w.Header())
handler.ServeHTTP(w, r)
}),
}
hErr := make(chan error)
qErr := make(chan error)
go func() {
hErr <- httpServer.Serve(tlsConn)
hErr <- http.ListenAndServeTLS(addr, certFile, keyFile, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
quicServer.SetQuicHeaders(w.Header())
handler.ServeHTTP(w, r)
}))
}()
go func() {
qErr <- quicServer.Serve(udpConn)