From 28ec254ff6cd59ca6226a32ff5f6f35bc4c69045 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Sat, 30 Sep 2023 15:14:57 +0200 Subject: [PATCH] remove ioutil. --- internal/server/manager.go | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/internal/server/manager.go b/internal/server/manager.go index 1d7eda6..97e461e 100644 --- a/internal/server/manager.go +++ b/internal/server/manager.go @@ -2,7 +2,7 @@ package server import ( "context" - "io/ioutil" + "io" "net" "net/http" "os" @@ -129,14 +129,6 @@ func New(ApiManager types.ApiManager, roomConfig *config.Room, config *config.Se } defer res.Body.Close() - // read whole body - body, err := ioutil.ReadAll(res.Body) - if err != nil { - logger.Err(err).Msg("proxy auth request `ioutil.ReadAll` err") - http.Error(w, "proxy auth failed", http.StatusForbidden) - return - } - if res.StatusCode < 200 || res.StatusCode >= 300 { // copy headers for k, vv := range res.Header { @@ -147,8 +139,14 @@ func New(ApiManager types.ApiManager, roomConfig *config.Room, config *config.Se // copy status & body w.WriteHeader(res.StatusCode) - w.Write(body) + _, err := io.Copy(w, res.Body) + if err != nil { + logger.Err(err).Msg("proxy auth request `io.Copy` err") + } return + } else { + // discard body so that the connection can be reused + _, _ = io.Copy(io.Discard, res.Body) } next.ServeHTTP(w, r)