From 84eaf50b7bc91b3a565764f5a9f6d9f045151cee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= Date: Sun, 1 Nov 2026 22:58:15 +0100 Subject: [PATCH] admin: better Cache-Control handling (#8330) --- admin.go | 3 ++- caddyconfig/load.go | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/admin.go b/admin.go index a3c2e21a5..3f78a7e96 100644 --- a/admin.go +++ b/admin.go @@ -45,6 +45,7 @@ import ( "github.com/prometheus/client_golang/prometheus" "go.uber.org/zap" "go.uber.org/zap/zapcore" + "golang.org/x/net/http/httpguts" "github.com/caddyserver/caddy/v2/caddyconfig/warning" "github.com/caddyserver/caddy/v2/internal" @@ -1085,7 +1086,7 @@ func handleConfig(w http.ResponseWriter, r *http.Request) error { body = buf.Bytes() } - forceReload := r.Header.Get("Cache-Control") == "must-revalidate" + forceReload := httpguts.HeaderValuesContainsToken(r.Header["Cache-Control"], "must-revalidate") err := changeConfig(r.Method, r.URL.Path, body, r.Header.Get("If-Match"), forceReload) if err != nil && !errors.Is(err, errSameConfig) { diff --git a/caddyconfig/load.go b/caddyconfig/load.go index d53132ae1..160713b55 100644 --- a/caddyconfig/load.go +++ b/caddyconfig/load.go @@ -24,6 +24,8 @@ import ( "strings" "sync" + "golang.org/x/net/http/httpguts" + "github.com/caddyserver/caddy/v2" ) @@ -107,7 +109,7 @@ func (adminLoad) handleLoad(w http.ResponseWriter, r *http.Request) error { body = result } - forceReload := r.Header.Get("Cache-Control") == "must-revalidate" + forceReload := httpguts.HeaderValuesContainsToken(r.Header["Cache-Control"], "must-revalidate") err = caddy.Load(body, forceReload) if err != nil {