From 162ac30f5c79afe811b119c6ac5414908fbd2904 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sat, 12 Nov 2022 19:33:09 +0100 Subject: [PATCH] new file and use Options --- server/upstream/header.go | 28 ++++++++++++++++++++++++++++ server/upstream/upstream.go | 21 +-------------------- 2 files changed, 29 insertions(+), 20 deletions(-) create mode 100644 server/upstream/header.go diff --git a/server/upstream/header.go b/server/upstream/header.go new file mode 100644 index 0000000..9575a3f --- /dev/null +++ b/server/upstream/header.go @@ -0,0 +1,28 @@ +package upstream + +import ( + "net/http" + "time" + + "codeberg.org/codeberg/pages/server/context" + "codeberg.org/codeberg/pages/server/gitea" +) + +// setHeader set values to response header +func (o *Options) setHeader(ctx *context.Context, header http.Header) { + if eTag := header.Get(gitea.ETagHeader); eTag != "" { + ctx.RespWriter.Header().Set(gitea.ETagHeader, eTag) + } + if cacheIndicator := header.Get(gitea.PagesCacheIndicatorHeader); cacheIndicator != "" { + ctx.RespWriter.Header().Set(gitea.PagesCacheIndicatorHeader, cacheIndicator) + } + if length := header.Get(gitea.ContentLengthHeader); length != "" { + ctx.RespWriter.Header().Set(gitea.ContentLengthHeader, length) + } + if mime := header.Get(gitea.ContentTypeHeader); mime == "" || o.ServeRaw { + ctx.RespWriter.Header().Set(gitea.ContentTypeHeader, rawMime) + } else { + ctx.RespWriter.Header().Set(gitea.ContentTypeHeader, mime) + } + ctx.RespWriter.Header().Set(headerLastModified, o.BranchTimestamp.In(time.UTC).Format(time.RFC1123)) +} diff --git a/server/upstream/upstream.go b/server/upstream/upstream.go index f480a76..b76b8e6 100644 --- a/server/upstream/upstream.go +++ b/server/upstream/upstream.go @@ -178,7 +178,7 @@ func (o *Options) Upstream(ctx *context.Context, giteaClient *gitea.Client) (fin } // Set ETag & MIME - setHeader(ctx, header, o.ServeRaw, o.BranchTimestamp) + o.setHeader(ctx, header) log.Debug().Msg("Prepare response") @@ -198,22 +198,3 @@ func (o *Options) Upstream(ctx *context.Context, giteaClient *gitea.Client) (fin return true } - -// setHeader set values to response header -func setHeader(ctx *context.Context, header http.Header, serveRaw bool, timestap time.Time) { - if eTag := header.Get(gitea.ETagHeader); eTag != "" { - ctx.RespWriter.Header().Set(gitea.ETagHeader, eTag) - } - if cacheIndicator := header.Get(gitea.PagesCacheIndicatorHeader); cacheIndicator != "" { - ctx.RespWriter.Header().Set(gitea.PagesCacheIndicatorHeader, cacheIndicator) - } - if length := header.Get(gitea.ContentLengthHeader); length != "" { - ctx.RespWriter.Header().Set(gitea.ContentLengthHeader, length) - } - if mime := header.Get(gitea.ContentTypeHeader); mime == "" || serveRaw { - ctx.RespWriter.Header().Set(gitea.ContentTypeHeader, rawMime) - } else { - ctx.RespWriter.Header().Set(gitea.ContentTypeHeader, mime) - } - ctx.RespWriter.Header().Set(headerLastModified, timestap.In(time.UTC).Format(time.RFC1123)) -}