]> source.dussan.org Git - gitea.git/commitdiff
Set `X-Gitea-Debug` header once (#23361) (#23381)
authorGiteabot <teabot@gitea.io>
Wed, 8 Mar 2023 22:33:05 +0000 (17:33 -0500)
committerGitHub <noreply@github.com>
Wed, 8 Mar 2023 22:33:05 +0000 (06:33 +0800)
modules/context/api.go
modules/context/context.go
modules/httpcache/httpcache.go
routers/install/routes.go
routers/web/base.go
routers/web/user/avatar.go

index 3f938948aed66315c4c5aeea48e7ef0974563012..f7a3384691246a18a407552466c5589e2414c32a 100644 (file)
@@ -244,7 +244,7 @@ func APIContexter() func(http.Handler) http.Handler {
                                }
                        }
 
-                       httpcache.AddCacheControlToHeader(ctx.Resp.Header(), 0, "no-transform")
+                       httpcache.SetCacheControlInHeader(ctx.Resp.Header(), 0, "no-transform")
                        ctx.Resp.Header().Set(`X-Frame-Options`, setting.CORSConfig.XFrameOptions)
 
                        ctx.Data["Context"] = &ctx
index a2088217ff387703ae966e0c8861db5ebf2261e4..f2c6b129fef48f1daf2714bbfc45a7267b05a390 100644 (file)
@@ -388,7 +388,7 @@ func (ctx *Context) SetServeHeaders(opts *ServeHeaderOptions) {
        if duration == 0 {
                duration = 5 * time.Minute
        }
-       httpcache.AddCacheControlToHeader(header, duration)
+       httpcache.SetCacheControlInHeader(header, duration)
 
        if !opts.LastModified.IsZero() {
                header.Set("Last-Modified", opts.LastModified.UTC().Format(http.TimeFormat))
@@ -753,7 +753,7 @@ func Contexter(ctx context.Context) func(next http.Handler) http.Handler {
                                }
                        }
 
-                       httpcache.AddCacheControlToHeader(ctx.Resp.Header(), 0, "no-transform")
+                       httpcache.SetCacheControlInHeader(ctx.Resp.Header(), 0, "no-transform")
                        ctx.Resp.Header().Set(`X-Frame-Options`, setting.CORSConfig.XFrameOptions)
 
                        ctx.Data["CsrfToken"] = ctx.csrf.GetToken()
index f0caa30eb82b3206d6ae45fc1b421a14440ccfd1..46e0152ef4553473adb26c8d0c6a5a59e1fd2c74 100644 (file)
@@ -15,8 +15,8 @@ import (
        "code.gitea.io/gitea/modules/setting"
 )
 
-// AddCacheControlToHeader adds suitable cache-control headers to response
-func AddCacheControlToHeader(h http.Header, maxAge time.Duration, additionalDirectives ...string) {
+// SetCacheControlInHeader sets suitable cache-control headers in the response
+func SetCacheControlInHeader(h http.Header, maxAge time.Duration, additionalDirectives ...string) {
        directives := make([]string, 0, 2+len(additionalDirectives))
 
        // "max-age=0 + must-revalidate" (aka "no-cache") is preferred instead of "no-store"
@@ -31,7 +31,7 @@ func AddCacheControlToHeader(h http.Header, maxAge time.Duration, additionalDire
                directives = append(directives, "max-age=0", "private", "must-revalidate")
 
                // to remind users they are using non-prod setting.
-               h.Add("X-Gitea-Debug", "RUN_MODE="+setting.RunMode)
+               h.Set("X-Gitea-Debug", "RUN_MODE="+setting.RunMode)
        }
 
        h.Set("Cache-Control", strings.Join(append(directives, additionalDirectives...), ", "))
@@ -50,7 +50,7 @@ func HandleTimeCache(req *http.Request, w http.ResponseWriter, fi os.FileInfo) (
 
 // HandleGenericTimeCache handles time-based caching for a HTTP request
 func HandleGenericTimeCache(req *http.Request, w http.ResponseWriter, lastModified time.Time) (handled bool) {
-       AddCacheControlToHeader(w.Header(), setting.StaticCacheTime)
+       SetCacheControlInHeader(w.Header(), setting.StaticCacheTime)
 
        ifModifiedSince := req.Header.Get("If-Modified-Since")
        if ifModifiedSince != "" {
@@ -81,7 +81,7 @@ func HandleGenericETagCache(req *http.Request, w http.ResponseWriter, etag strin
                        return true
                }
        }
-       AddCacheControlToHeader(w.Header(), setting.StaticCacheTime)
+       SetCacheControlInHeader(w.Header(), setting.StaticCacheTime)
        return false
 }
 
@@ -125,6 +125,6 @@ func HandleGenericETagTimeCache(req *http.Request, w http.ResponseWriter, etag s
                        }
                }
        }
-       AddCacheControlToHeader(w.Header(), setting.StaticCacheTime)
+       SetCacheControlInHeader(w.Header(), setting.StaticCacheTime)
        return false
 }
index a8efc92fe17ca7265bd1e9aa8c0478a89c00dc71..82d9c34b41f186dff058c25040cefdde245ad344 100644 (file)
@@ -64,7 +64,7 @@ func installRecovery(ctx goctx.Context) func(next http.Handler) http.Handler {
                                                "SignedUserName": "",
                                        }
 
-                                       httpcache.AddCacheControlToHeader(w.Header(), 0, "no-transform")
+                                       httpcache.SetCacheControlInHeader(w.Header(), 0, "no-transform")
                                        w.Header().Set(`X-Frame-Options`, setting.CORSConfig.XFrameOptions)
 
                                        if !setting.IsProd {
index b0d8a7c3f1e6d6cdc201860f08d99bdd08674a4a..e537382a638a569946e627b57a240a62349ebfed 100644 (file)
@@ -158,7 +158,7 @@ func Recovery(ctx goctx.Context) func(next http.Handler) http.Handler {
                                                store["SignedUserName"] = ""
                                        }
 
-                                       httpcache.AddCacheControlToHeader(w.Header(), 0, "no-transform")
+                                       httpcache.SetCacheControlInHeader(w.Header(), 0, "no-transform")
                                        w.Header().Set(`X-Frame-Options`, setting.CORSConfig.XFrameOptions)
 
                                        if !setting.IsProd {
index 2dba74822e5313dfadab719d0ce941dcff2fa4a2..7ad65cd51e39cb4bbaf00e88347a6800c5a0b7e4 100644 (file)
@@ -17,7 +17,7 @@ func cacheableRedirect(ctx *context.Context, location string) {
        // here we should not use `setting.StaticCacheTime`, it is pretty long (default: 6 hours)
        // we must make sure the redirection cache time is short enough, otherwise a user won't see the updated avatar in 6 hours
        // it's OK to make the cache time short, it is only a redirection, and doesn't cost much to make a new request
-       httpcache.AddCacheControlToHeader(ctx.Resp.Header(), 5*time.Minute)
+       httpcache.SetCacheControlInHeader(ctx.Resp.Header(), 5*time.Minute)
        ctx.Redirect(location)
 }