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() 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 { if handler == nil {
handler = http.DefaultServeMux handler = http.DefaultServeMux
} }
@@ -741,17 +728,14 @@ func ListenAndServe(addr, certFile, keyFile string, handler http.Handler) error
TLSConfig: config, TLSConfig: config,
Handler: handler, 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) hErr := make(chan error)
qErr := make(chan error) qErr := make(chan error)
go func() { 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() { go func() {
qErr <- quicServer.Serve(udpConn) qErr <- quicServer.Serve(udpConn)