diff --git a/internal/net/gphttp/reverseproxy/reverse_proxy_mod.go b/internal/net/gphttp/reverseproxy/reverse_proxy_mod.go index 221aa74..49988f0 100644 --- a/internal/net/gphttp/reverseproxy/reverse_proxy_mod.go +++ b/internal/net/gphttp/reverseproxy/reverse_proxy_mod.go @@ -410,7 +410,7 @@ func (p *ReverseProxy) handler(rw http.ResponseWriter, req *http.Request) { rw.WriteHeader(res.StatusCode) - err = U.CopyClose(U.NewContextWriter(ctx, rw), U.NewContextReader(ctx, res.Body)) // close now, instead of defer, to populate res.Trailer + err = U.CopyCloseWithContext(ctx, rw, res.Body) // close now, instead of defer, to populate res.Trailer if err != nil { if !errors.Is(err, context.Canceled) { p.errorHandler(rw, req, err, false) diff --git a/internal/utils/io.go b/internal/utils/io.go index 6a5b6cf..a470edb 100644 --- a/internal/utils/io.go +++ b/internal/utils/io.go @@ -223,3 +223,7 @@ func CopyClose(dst *ContextWriter, src *ContextReader) (err error) { } } } + +func CopyCloseWithContext(ctx context.Context, dst io.Writer, src io.Reader) (err error) { + return CopyClose(NewContextWriter(ctx, dst), NewContextReader(ctx, src)) +}