aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAkihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>2023-04-07 01:19:21 +0000
committerGopher Robot <gobot@golang.org>2023-04-07 19:44:49 +0000
commit97df9c0b051b6c06bff7ec7e61522e7bbef40c91 (patch)
tree11f31131b53ad2f0d2c1cd16aaf0ce3b4ae204a1 /src
parent6a97a60b4b80dfa9db91200c054d734e18dda115 (diff)
downloadgo-97df9c0b051b6c06bff7ec7e61522e7bbef40c91.tar.xz
net/http: expose "http: server gave HTTP response to HTTPS client" error
Expose "http: server gave HTTP response to HTTPS client" error as `ErrSchemeMismatch`, so that it can be compared with `errors.Is` . Fixes #44855 Change-Id: If96e0d000fdef641fea407310faf9e1c4f7ad0f0 GitHub-Last-Rev: 22879fc88367d77817d7d96c9164f22e55f3a192 GitHub-Pull-Request: golang/go#50939 Reviewed-on: https://go-review.googlesource.com/c/go/+/382117 Run-TryBot: Damien Neil <dneil@google.com> Auto-Submit: Damien Neil <dneil@google.com> Reviewed-by: Damien Neil <dneil@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Michael Knyszek <mknyszek@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/net/http/client.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/net/http/client.go b/src/net/http/client.go
index 1e300acf89..2cab53a585 100644
--- a/src/net/http/client.go
+++ b/src/net/http/client.go
@@ -204,6 +204,9 @@ func (c *Client) transport() RoundTripper {
return DefaultTransport
}
+// ErrSchemeMismatch is returned when a server returns an HTTP response to an HTTPS client.
+var ErrSchemeMismatch = errors.New("http: server gave HTTP response to HTTPS client")
+
// send issues an HTTP request.
// Caller should close resp.Body when done reading from it.
func send(ireq *Request, rt RoundTripper, deadline time.Time) (resp *Response, didTimeout func() bool, err error) {
@@ -265,7 +268,7 @@ func send(ireq *Request, rt RoundTripper, deadline time.Time) (resp *Response, d
// response looks like HTTP and give a more helpful error.
// See golang.org/issue/11111.
if string(tlsErr.RecordHeader[:]) == "HTTP/" {
- err = errors.New("http: server gave HTTP response to HTTPS client")
+ err = ErrSchemeMismatch
}
}
return nil, didTimeout, err