From 4fa45fadd2bea1a2c4e46d3c51bc31edeb79dfda Mon Sep 17 00:00:00 2001 From: Nikolay Markov Date: Wed, 4 Sep 2019 18:54:12 +0300 Subject: [PATCH] Propagating custom SkipBody value to allow explicitly skip body reading for responses (#647) --- client.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/client.go b/client.go index 93b5994..afb64db 100644 --- a/client.go +++ b/client.go @@ -1143,7 +1143,11 @@ func (c *HostClient) doNonNilReqResp(req *Request, resp *Response) (bool, error) // Free up resources occupied by response before sending the request, // so the GC may reclaim these resources (e.g. response body). + + // backing up SkipBody in case it was set explicitly + customSkipBody := resp.SkipBody resp.Reset() + resp.SkipBody = customSkipBody // If we detected a redirect to another schema if req.schemaUpdate { @@ -1210,7 +1214,7 @@ func (c *HostClient) doNonNilReqResp(req *Request, resp *Response) (bool, error) } } - if !req.Header.IsGet() && req.Header.IsHead() { + if customSkipBody || !req.Header.IsGet() && req.Header.IsHead() { resp.SkipBody = true } if c.DisableHeaderNamesNormalizing {