diff options
| author | Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp> | 2023-04-07 01:19:21 +0000 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2023-04-07 19:44:49 +0000 |
| commit | 97df9c0b051b6c06bff7ec7e61522e7bbef40c91 (patch) | |
| tree | 11f31131b53ad2f0d2c1cd16aaf0ce3b4ae204a1 /src | |
| parent | 6a97a60b4b80dfa9db91200c054d734e18dda115 (diff) | |
| download | go-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.go | 5 |
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 |
