code review fixes woohoo

This commit is contained in:
orangix 2024-03-27 08:06:11 +01:00 committed by video-prize-ranch
parent 6f7e694fd4
commit 924ad83ac6
No known key found for this signature in database
2 changed files with 14 additions and 15 deletions

View file

@ -187,13 +187,14 @@ func (client *Client) ServeRawContent(targetOwner, targetRepo, ref, resource str
// Check if size of gzipped response is greater than fileCacheSizeLimit and return gzipped // Check if size of gzipped response is greater than fileCacheSizeLimit and return gzipped
// response but uncached or return non-gzip response if not supported // response but uncached or return non-gzip response if not supported
len := int64(buf.Len()); shouldRespBeSavedToCache := int64(buf.Len()) < fileCacheSizeLimit
shouldRespBeSavedToCache := len < fileCacheSizeLimit
if !shouldRespBeSavedToCache { if !shouldRespBeSavedToCache {
if acceptsGzip {
return io.NopCloser(buf), resp.Response.Header, resp.StatusCode, err return io.NopCloser(buf), resp.Response.Header, resp.StatusCode, err
} else if !shouldRespBeSavedToCache && !acceptsGzip { } else {
return reader, resp.Response.Header, resp.StatusCode, err return reader, resp.Response.Header, resp.StatusCode, err
} }
}
// now we write to cache and respond at the same time // now we write to cache and respond at the same time
fileResp := FileResponse{ fileResp := FileResponse{

View file

@ -202,17 +202,15 @@ func (o *Options) Upstream(ctx *context.Context, giteaClient *gitea.Client, redi
} }
// Decompress response if gzip is not supported // Decompress response if gzip is not supported
r := reader if acceptsGzip {
if !acceptsGzip { ctx.RespWriter.Header().Set("Content-Encoding", "gzip")
r, err = gzip.NewReader(reader) } else if r, err := gzip.NewReader(reader); err == nil {
if err != nil { reader = r
} else {
log.Error().Err(err).Msgf("Couldn't decompress for %q", o.TargetPath) log.Error().Err(err).Msgf("Couldn't decompress for %q", o.TargetPath)
html.ReturnErrorPage(ctx, "", http.StatusInternalServerError) html.ReturnErrorPage(ctx, "", http.StatusInternalServerError)
return true return true
} }
} else {
ctx.RespWriter.Header().Set("Content-Encoding", "gzip")
}
// Set ETag & MIME // Set ETag & MIME
o.setHeader(ctx, header) o.setHeader(ctx, header)
@ -223,7 +221,7 @@ func (o *Options) Upstream(ctx *context.Context, giteaClient *gitea.Client, redi
// Write the response body to the original request // Write the response body to the original request
if reader != nil { if reader != nil {
_, err := io.Copy(ctx.RespWriter, r) _, err := io.Copy(ctx.RespWriter, reader)
if err != nil { if err != nil {
log.Error().Err(err).Msgf("Couldn't write body for %q", o.TargetPath) log.Error().Err(err).Msgf("Couldn't write body for %q", o.TargetPath)
html.ReturnErrorPage(ctx, "", http.StatusInternalServerError) html.ReturnErrorPage(ctx, "", http.StatusInternalServerError)