aboutsummaryrefslogtreecommitdiff
path: root/request.go
diff options
context:
space:
mode:
Diffstat (limited to 'request.go')
-rw-r--r--request.go9
1 files changed, 8 insertions, 1 deletions
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
}
}