From 29ada7aa481930fbddab626e0686f84c1fcd63a2 Mon Sep 17 00:00:00 2001 From: Damien Neil Date: Mon, 9 Mar 2026 12:14:02 -0700 Subject: net/http/internal/http2: remove ServeConnOpts.UpgradeRequest UpgradeRequest is used by the x/net/http2/h2c package for upgrading HTTP/1.1 requests to unencrypted HTTP/2. net/http only supports unencrypted HTTP/2 "with prior knowledge", not upgrade. Drop the field. For #67810 Change-Id: Iae48386e2e299dbf3b433954b87b6eb86a6a6964 Reviewed-on: https://go-review.googlesource.com/c/go/+/753320 Reviewed-by: Nicholas Husin Auto-Submit: Damien Neil Reviewed-by: Nicholas Husin LUCI-TryBot-Result: Go LUCI --- src/net/http/internal/http2/server.go | 35 ----------------------------------- 1 file changed, 35 deletions(-) (limited to 'src/net/http') diff --git a/src/net/http/internal/http2/server.go b/src/net/http/internal/http2/server.go index 6457906158..98bec52343 100644 --- a/src/net/http/internal/http2/server.go +++ b/src/net/http/internal/http2/server.go @@ -362,12 +362,6 @@ type ServeConnOpts struct { // or BaseConfig.Handler is nil, http.DefaultServeMux is used. Handler http.Handler - // UpgradeRequest is an initial request received on a connection - // undergoing an h2c upgrade. The request body must have been - // completely read from the connection before calling ServeConn, - // and the 101 Switching Protocols response written. - UpgradeRequest *http.Request - // Settings is the decoded contents of the HTTP2-Settings header // in an h2c upgrade request. Settings []byte @@ -560,11 +554,6 @@ func (s *Server) serveConn(c net.Conn, opts *ServeConnOpts, newf func(*serverCon hook(sc) } - if opts.UpgradeRequest != nil { - sc.upgradeRequest(opts.UpgradeRequest) - opts.UpgradeRequest = nil - } - sc.serve(conf) } @@ -2165,30 +2154,6 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { return sc.scheduleHandler(id, rw, req, handler) } -func (sc *serverConn) upgradeRequest(req *http.Request) { - sc.serveG.check() - id := uint32(1) - sc.maxClientStreamID = id - st := sc.newStream(id, 0, stateHalfClosedRemote, defaultRFC9218Priority(sc.priorityAware && !sc.hasIntermediary)) - st.reqTrailer = req.Trailer - if st.reqTrailer != nil { - st.trailer = make(http.Header) - } - rw := sc.newResponseWriter(st, req) - - // Disable any read deadline set by the net/http package - // prior to the upgrade. - if sc.hs.ReadTimeout > 0 { - sc.conn.SetReadDeadline(time.Time{}) - } - - // This is the first request on the connection, - // so start the handler directly rather than going - // through scheduleHandler. - sc.curHandlers++ - go sc.runHandler(rw, req, sc.handler.ServeHTTP) -} - func (st *stream) processTrailerHeaders(f *MetaHeadersFrame) error { sc := st.sc sc.serveG.check() -- cgit v1.3-6-g1900