aboutsummaryrefslogtreecommitdiff
path: root/src/net/http/request.go
diff options
context:
space:
mode:
authorMeir Fischer <meirfischer@gmail.com>2017-10-08 15:25:28 -0400
committerBrad Fitzpatrick <bradfitz@golang.org>2018-06-27 16:48:29 +0000
commit7c4c87c015e566b7b172c613ef4fcc9669d936f6 (patch)
tree3433a76eaaa1a6a0641738c5ac179fb060075eb6 /src/net/http/request.go
parent1d303a00862eb4222640806ece5608bb1314a597 (diff)
downloadgo-7c4c87c015e566b7b172c613ef4fcc9669d936f6.tar.gz
go-7c4c87c015e566b7b172c613ef4fcc9669d936f6.zip
net/http/httptrace: expose request headers for http/1.1
Some headers, which are set or modified by the http library, are not written to the standard http.Request.Header and are not included as part of http.Response.Request.Header. Exposing all headers alleviates this problem. This is not a complete solution to 19761 since it does not have http/2 support. Updates #19761 Change-Id: Ie8d4f702f4f671666b120b332378644f094e288b Reviewed-on: https://go-review.googlesource.com/67430 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/net/http/request.go')
-rw-r--r--src/net/http/request.go14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/net/http/request.go b/src/net/http/request.go
index 390f3cc063..13c5417053 100644
--- a/src/net/http/request.go
+++ b/src/net/http/request.go
@@ -555,6 +555,9 @@ func (r *Request) write(w io.Writer, usingProxy bool, extraHeaders Header, waitF
if err != nil {
return err
}
+ if trace != nil && trace.WroteHeaderField != nil {
+ trace.WroteHeaderField("Host", []string{host})
+ }
// Use the defaultUserAgent unless the Header contains one, which
// may be blank to not send the header.
@@ -567,6 +570,9 @@ func (r *Request) write(w io.Writer, usingProxy bool, extraHeaders Header, waitF
if err != nil {
return err
}
+ if trace != nil && trace.WroteHeaderField != nil {
+ trace.WroteHeaderField("User-Agent", []string{userAgent})
+ }
}
// Process Body,ContentLength,Close,Trailer
@@ -574,18 +580,18 @@ func (r *Request) write(w io.Writer, usingProxy bool, extraHeaders Header, waitF
if err != nil {
return err
}
- err = tw.WriteHeader(w)
+ err = tw.writeHeader(w, trace)
if err != nil {
return err
}
- err = r.Header.WriteSubset(w, reqWriteExcludeHeader)
+ err = r.Header.writeSubset(w, reqWriteExcludeHeader, trace)
if err != nil {
return err
}
if extraHeaders != nil {
- err = extraHeaders.Write(w)
+ err = extraHeaders.write(w, trace)
if err != nil {
return err
}
@@ -624,7 +630,7 @@ func (r *Request) write(w io.Writer, usingProxy bool, extraHeaders Header, waitF
}
// Write body and trailer
- err = tw.WriteBody(w)
+ err = tw.writeBody(w)
if err != nil {
if tw.bodyReadError == err {
err = requestBodyReadError{err}