aboutsummaryrefslogtreecommitdiff
path: root/src/net/http
diff options
context:
space:
mode:
authorSean Liao <sean@liao.dev>2025-11-16 00:26:27 +0000
committerSean Liao <sean@liao.dev>2025-11-21 12:47:52 -0800
commit0f32fbc631875bb729c74b839328fdf541bfed9a (patch)
tree7e77a19ffe0b438bb9d4eb744cc4ed91b486f00b /src/net/http
parent3e0a8e78677a5c4035e5305446ca8f8ac3ebf2f9 (diff)
downloadgo-0f32fbc631875bb729c74b839328fdf541bfed9a.tar.xz
net/http: populate Response.Request when using NewFileTransport
Fixes #51562 Change-Id: Ia6fe4728b1e3e0cf3a6462be99c1044260cadf31 Reviewed-on: https://go-review.googlesource.com/c/go/+/720822 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Damien Neil <dneil@google.com> Reviewed-by: Mark Freeman <markfreeman@google.com>
Diffstat (limited to 'src/net/http')
-rw-r--r--src/net/http/filetransport.go5
-rw-r--r--src/net/http/filetransport_test.go3
2 files changed, 6 insertions, 2 deletions
diff --git a/src/net/http/filetransport.go b/src/net/http/filetransport.go
index b08bae6348..8f2cbb2517 100644
--- a/src/net/http/filetransport.go
+++ b/src/net/http/filetransport.go
@@ -57,7 +57,7 @@ func (t fileTransport) RoundTrip(req *Request) (resp *Response, err error) {
// sends our *Response on, once the *Response itself has been
// populated (even if the body itself is still being
// written to the res.Body, a pipe)
- rw, resc := newPopulateResponseWriter()
+ rw, resc := newPopulateResponseWriter(req)
go func() {
t.fh.ServeHTTP(rw, req)
rw.finish()
@@ -65,7 +65,7 @@ func (t fileTransport) RoundTrip(req *Request) (resp *Response, err error) {
return <-resc, nil
}
-func newPopulateResponseWriter() (*populateResponse, <-chan *Response) {
+func newPopulateResponseWriter(req *Request) (*populateResponse, <-chan *Response) {
pr, pw := io.Pipe()
rw := &populateResponse{
ch: make(chan *Response),
@@ -76,6 +76,7 @@ func newPopulateResponseWriter() (*populateResponse, <-chan *Response) {
Header: make(Header),
Close: true,
Body: pr,
+ Request: req,
},
}
return rw, rw.ch
diff --git a/src/net/http/filetransport_test.go b/src/net/http/filetransport_test.go
index b3e3301e10..a255c4b4ad 100644
--- a/src/net/http/filetransport_test.go
+++ b/src/net/http/filetransport_test.go
@@ -53,6 +53,9 @@ func TestFileTransport(t *testing.T) {
if string(slurp) != "Bar" {
t.Errorf("for %s, got content %q, want %q", urlstr, string(slurp), "Bar")
}
+ if got := res.Request.URL.String(); got != urlstr {
+ t.Errorf("for %s, Response.Request.URL = %s, want = %s", urlstr, got, urlstr)
+ }
}
const badURL = "file://../no-exist.txt"