|
|
@@ -916,7 +916,7 @@ func commaSeparatedTrailers(req *http.Request) (string, error) {
|
|
|
k = http.CanonicalHeaderKey(k)
|
|
|
switch k {
|
|
|
case "Transfer-Encoding", "Trailer", "Content-Length":
|
|
|
- return "", &badStringError{"invalid Trailer key", k}
|
|
|
+ return "", fmt.Errorf("invalid Trailer key %q", k)
|
|
|
}
|
|
|
keys = append(keys, k)
|
|
|
}
|
|
|
@@ -1394,13 +1394,6 @@ func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-type badStringError struct {
|
|
|
- what string
|
|
|
- str string
|
|
|
-}
|
|
|
-
|
|
|
-func (e *badStringError) Error() string { return fmt.Sprintf("%s %q", e.what, e.str) }
|
|
|
-
|
|
|
// requires cc.mu be held.
|
|
|
func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) {
|
|
|
cc.hbuf.Reset()
|
|
|
@@ -1616,6 +1609,7 @@ func (cc *ClientConn) writeHeader(name, value string) {
|
|
|
}
|
|
|
|
|
|
type resAndError struct {
|
|
|
+ _ incomparable
|
|
|
res *http.Response
|
|
|
err error
|
|
|
}
|
|
|
@@ -1663,6 +1657,7 @@ func (cc *ClientConn) streamByID(id uint32, andRemove bool) *clientStream {
|
|
|
|
|
|
// clientConnReadLoop is the state owned by the clientConn's frame-reading readLoop.
|
|
|
type clientConnReadLoop struct {
|
|
|
+ _ incomparable
|
|
|
cc *ClientConn
|
|
|
closeWhenIdle bool
|
|
|
}
|
|
|
@@ -2479,6 +2474,7 @@ func (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) {
|
|
|
// gzipReader wraps a response body so it can lazily
|
|
|
// call gzip.NewReader on the first call to Read
|
|
|
type gzipReader struct {
|
|
|
+ _ incomparable
|
|
|
body io.ReadCloser // underlying Response.Body
|
|
|
zr *gzip.Reader // lazily-initialized gzip reader
|
|
|
zerr error // sticky error
|