]> Cypherpunks.ru repositories - gostls13.git/commitdiff
net/http: expose "http: server gave HTTP response to HTTPS client" error
authorAkihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
Fri, 7 Apr 2023 01:19:21 +0000 (01:19 +0000)
committerGopher Robot <gobot@golang.org>
Fri, 7 Apr 2023 19:44:49 +0000 (19:44 +0000)
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>
api/next/44855.txt [new file with mode: 0644]
src/net/http/client.go

diff --git a/api/next/44855.txt b/api/next/44855.txt
new file mode 100644 (file)
index 0000000..89a3ff5
--- /dev/null
@@ -0,0 +1 @@
+pkg net/http, var ErrSchemeMismatch error #44855
index 1e300acf89be1c57c5aacda0d0b79943e11c3d2b..2cab53a585ab770d5cb502b7b510819f5293b37c 100644 (file)
@@ -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