From 403359114bf971f037e2737b43e2734a89df9f0a Mon Sep 17 00:00:00 2001 From: Stefan Majewsky Date: Sun, 11 Feb 2018 12:23:16 +0100 Subject: ensure that response body is drained --- request.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'request.go') diff --git a/request.go b/request.go index 1128a00..9087115 100644 --- a/request.go +++ b/request.go @@ -70,6 +70,9 @@ type Request struct { //ExpectStatusCodes can be left empty to disable this check, otherwise //schwift.UnexpectedStatusCodeError may be returned. ExpectStatusCodes []int + //DrainResponseBody can be set if the caller is not interested in the + //response body. This is implied for Response.StatusCode == 204. + DrainResponseBody bool } //URL returns the full URL for this request. @@ -144,7 +147,11 @@ func (r Request) do(client *gophercloud.ServiceClient, afterReauth bool) (*http. } for _, code := range r.ExpectStatusCodes { if code == resp.StatusCode { - return resp, nil + var err error + if r.DrainResponseBody || resp.StatusCode == 204 { + err = drainResponseBody(resp) + } + return resp, err } } -- cgit v1.2.3