aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/transport/http/receive_pack.go
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2017-07-25 16:14:32 +0200
committerGitHub <noreply@github.com>2017-07-25 16:14:32 +0200
commitfbf2a4ab4588c78e3d9d0265dba774ae6b388b5f (patch)
tree883e9172499234f9f258fb41190fcd0f9134c0a4 /plumbing/transport/http/receive_pack.go
parent25a0420bc0544f826e5517365e986d83bbb926c8 (diff)
parentdb5fa522f36207684ec0d67b98cac6313f0259b6 (diff)
downloadgo-git-fbf2a4ab4588c78e3d9d0265dba774ae6b388b5f.tar.gz
Merge pull request #507 from mcuadros/ctx
transport: context package support allowing cancellation of any network operation
Diffstat (limited to 'plumbing/transport/http/receive_pack.go')
-rw-r--r--plumbing/transport/http/receive_pack.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/plumbing/transport/http/receive_pack.go b/plumbing/transport/http/receive_pack.go
index b8489a7..b54b70f 100644
--- a/plumbing/transport/http/receive_pack.go
+++ b/plumbing/transport/http/receive_pack.go
@@ -2,6 +2,7 @@ package http
import (
"bytes"
+ "context"
"fmt"
"io"
"net/http"
@@ -25,7 +26,7 @@ func (s *rpSession) AdvertisedReferences() (*packp.AdvRefs, error) {
return advertisedReferences(s.session, transport.ReceivePackServiceName)
}
-func (s *rpSession) ReceivePack(req *packp.ReferenceUpdateRequest) (
+func (s *rpSession) ReceivePack(ctx context.Context, req *packp.ReferenceUpdateRequest) (
*packp.ReportStatus, error) {
url := fmt.Sprintf(
"%s/%s",
@@ -37,7 +38,7 @@ func (s *rpSession) ReceivePack(req *packp.ReferenceUpdateRequest) (
return nil, err
}
- res, err := s.doRequest(http.MethodPost, url, buf)
+ res, err := s.doRequest(ctx, http.MethodPost, url, buf)
if err != nil {
return nil, err
}
@@ -61,7 +62,10 @@ func (s *rpSession) ReceivePack(req *packp.ReferenceUpdateRequest) (
return report, report.Error()
}
-func (s *rpSession) doRequest(method, url string, content *bytes.Buffer) (*http.Response, error) {
+func (s *rpSession) doRequest(
+ ctx context.Context, method, url string, content *bytes.Buffer,
+) (*http.Response, error) {
+
var body io.Reader
if content != nil {
body = content
@@ -75,7 +79,7 @@ func (s *rpSession) doRequest(method, url string, content *bytes.Buffer) (*http.
applyHeadersToRequest(req, content, s.endpoint.Host(), transport.ReceivePackServiceName)
s.applyAuthToRequest(req)
- res, err := s.client.Do(req)
+ res, err := s.client.Do(req.WithContext(ctx))
if err != nil {
return nil, plumbing.NewUnexpectedError(err)
}