]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: Add Server.DisableClientPriority field
authorNicholas S. Husin <nsh@golang.org>
Thu, 22 Jan 2026 21:29:18 +0000 (16:29 -0500)
committerNicholas Husin <nsh@golang.org>
Thu, 22 Jan 2026 22:02:25 +0000 (14:02 -0800)
The DisableClientPriority field is currently still a no-op, and will
only take effect once golang.org/x/net is bundled up into h2_bundle.go
again.

For #75500

Change-Id: I9e2135bed50b7f201aea93467e3f5f5f6c81cb1c
Reviewed-on: https://go-review.googlesource.com/c/go/+/738620
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Nicholas Husin <husin@google.com>
api/next/75500.txt [new file with mode: 0644]
doc/next/6-stdlib/99-minor/net/http/75500.md [new file with mode: 0644]
src/net/http/server.go

diff --git a/api/next/75500.txt b/api/next/75500.txt
new file mode 100644 (file)
index 0000000..7cf5bcf
--- /dev/null
@@ -0,0 +1 @@
+pkg net/http, type Server struct, DisableClientPriority bool #75500
diff --git a/doc/next/6-stdlib/99-minor/net/http/75500.md b/doc/next/6-stdlib/99-minor/net/http/75500.md
new file mode 100644 (file)
index 0000000..a403125
--- /dev/null
@@ -0,0 +1,4 @@
+HTTP/2 server now accepts client priority signals, as defined in RFC 9218,
+allowing it to prioritize serving HTTP/2 streams with higher priority. If the
+old behavior is preferred, where streams are served in a round-robin manner
+regardless of priority, [Server.DisableClientPriority] can be set to `true`.
index 406d2a840753e6e33000dc7566478f82cfb55396..a388777d3a50232dc75ccf365d4d2b78f3a00e76 100644 (file)
@@ -3074,6 +3074,17 @@ type Server struct {
        // the default is HTTP/1 only.
        Protocols *Protocols
 
+       // DisableClientPriority specifies whether client-specified priority, as
+       // specified in RFC 9218, should be respected or not.
+       //
+       // This field only takes effect if using HTTP/2, and if no custom write
+       // scheduler is defined for the HTTP/2 server. Otherwise, this field is a
+       // no-op.
+       //
+       // If set to true, requests will be served in a round-robin manner, without
+       // prioritization.
+       DisableClientPriority bool
+
        inShutdown atomic.Bool // true when server is in shutdown
 
        disableKeepAlives atomic.Bool