diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2018-07-11 14:01:36 +0200 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2018-07-11 14:01:36 +0200 |
| commit | 81c8b90bcb1345f1c0421a25a16a2d393d27805d (patch) | |
| tree | 3fafe677b4c058a4b51f65f4d12beb5a6bc0a48e /request.go | |
| parent | 2d3eb72207f62b7bc4e08b3dc750f7da8cacb53b (diff) | |
| download | go-schwift-81c8b90bcb1345f1c0421a25a16a2d393d27805d.tar.gz | |
support aborting requests with context.Context
Diffstat (limited to 'request.go')
| -rw-r--r-- | request.go | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -19,6 +19,7 @@ package schwift import ( + "context" "io" "io/ioutil" "net/http" @@ -41,12 +42,14 @@ import ( type RequestOptions struct { Headers Headers Values url.Values + Context context.Context } func cloneRequestOptions(orig *RequestOptions, additional Headers) *RequestOptions { result := RequestOptions{ Headers: make(Headers), Values: make(url.Values), + Context: orig.Context, } if orig != nil { for k, v := range orig.Headers { @@ -124,6 +127,9 @@ func (r Request) Do(backend Backend) (*http.Response, error) { for k, v := range r.Options.Headers { req.Header[k] = []string{v} } + if r.Options.Context != nil { + req = req.WithContext(r.Options.Context) + } } if r.Body != nil { req.Header.Set("Expect", "100-continue") |
