fixup! Fix the introduced bug where RO endpoint could've been accidentally used. (#17)

This commit is contained in:
2024-06-29 08:52:41 +01:00
parent d141fe3c04
commit a24e6c8c4d
3 changed files with 53 additions and 0 deletions
+27
View File
@@ -1,8 +1,11 @@
package main
import (
"bytes"
"compress/gzip"
"crypto/tls"
"fmt"
"io"
"net/url"
"time"
@@ -93,6 +96,30 @@ func proxyTheRequest(c *fiber.Ctx, currentEndpoint string) error {
logDebugResponse(c)
}
if c.Response().Header.Peek("Content-Encoding") != nil && string(c.Response().Header.Peek("Content-Encoding")) == "gzip" {
reader, err := gzip.NewReader(bytes.NewReader(c.Response().Body()))
if err != nil {
cfg.Logger.Error(&libpack_logger.LogMessage{
Message: "Failed to create gzip reader",
Pairs: map[string]interface{}{"error": err.Error()},
})
return err
}
defer reader.Close()
decompressed, err := io.ReadAll(reader)
if err != nil {
cfg.Logger.Error(&libpack_logger.LogMessage{
Message: "Failed to decompress response",
Pairs: map[string]interface{}{"error": err.Error()},
})
return err
}
c.Response().SetBody(decompressed)
c.Response().Header.Del("Content-Encoding")
}
if c.Response().StatusCode() != 200 {
if ifNotInTest() {
cfg.Monitoring.Increment(libpack_monitoring.MetricsFailed, nil)