From 577d049b4ea56e459da6e49f4b92fc1981c92440 Mon Sep 17 00:00:00 2001 From: Taras Madan Date: Tue, 4 Feb 2025 15:01:41 +0100 Subject: dashboard/app: pre-gzip all responses --- dashboard/app/api.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'dashboard/app/api.go') diff --git a/dashboard/app/api.go b/dashboard/app/api.go index 9e53bcbe2..62b0ac76e 100644 --- a/dashboard/app/api.go +++ b/dashboard/app/api.go @@ -111,16 +111,16 @@ func handleJSON(fn JSONHandler) http.Handler { http.Error(w, err.Error(), status) return } - w.Header().Set("Content-Type", "application/json") - wJS := w.(io.Writer) - if strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") { - w.Header().Set("Content-Encoding", "gzip") - gw := gzip.NewWriter(w) - defer gw.Close() - wJS = gw - } + + wJS := newGzipResponseWriterCloser(w) + defer wJS.Close() if err := json.NewEncoder(wJS).Encode(reply); err != nil { log.Errorf(c, "failed to encode reply: %v", err) + return + } + w.Header().Set("Content-Type", "application/json") + if err := wJS.writeResult(r); err != nil { + log.Errorf(c, "wJS.writeResult: %s", err.Error()) } }) } -- cgit mrf-deployment