From 877c4affcd72050c9b6023dd4df2fef9d62d2f47 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Wed, 7 Feb 2024 13:56:49 +1100 Subject: [PATCH] Save extra http Request alloc in webseed request --- webseed/client.go | 2 +- webseed/request.go | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/webseed/client.go b/webseed/client.go index ac42b8a427..d5ae3ac1db 100644 --- a/webseed/client.go +++ b/webseed/client.go @@ -79,13 +79,13 @@ func (ws *Client) NewRequest(r RequestSpec) Request { var requestParts []requestPart if !ws.fileIndex.Locate(r, func(i int, e segments.Extent) bool { req, err := newRequest( + ctx, ws.Url, i, ws.info, e.Start, e.Length, ws.PathEscaper, ) if err != nil { panic(err) } - req = req.WithContext(ctx) part := requestPart{ req: req, result: make(chan requestPartResult, 1), diff --git a/webseed/request.go b/webseed/request.go index 53fe6dba1e..a8aefab3b3 100644 --- a/webseed/request.go +++ b/webseed/request.go @@ -1,6 +1,7 @@ package webseed import ( + "context" "fmt" "net/http" "net/url" @@ -46,6 +47,7 @@ func trailingPath( // Creates a request per BEP 19. func newRequest( + ctx context.Context, url_ string, fileIndex int, info *metainfo.Info, offset, length int64, @@ -57,7 +59,7 @@ func newRequest( // for things like spaces and '#'. url_ += trailingPath(info.Name, fileInfo.Path, pathEscaper) } - req, err := http.NewRequest(http.MethodGet, url_, nil) + req, err := http.NewRequestWithContext(ctx, http.MethodGet, url_, nil) if err != nil { return nil, err }