From 81c8b90bcb1345f1c0421a25a16a2d393d27805d Mon Sep 17 00:00:00 2001 From: Stefan Majewsky Date: Wed, 11 Jul 2018 14:01:36 +0200 Subject: support aborting requests with context.Context --- request.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/request.go b/request.go index 2f86df2..1705918 100644 --- a/request.go +++ b/request.go @@ -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") -- cgit v1.2.3