]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: fix comment change omitted between versions of CL 143177
authorBrad Fitzpatrick <bradfitz@golang.org>
Thu, 25 Oct 2018 02:02:57 +0000 (02:02 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 25 Oct 2018 03:03:15 +0000 (03:03 +0000)
Updates #23689

Change-Id: Icddec2fcc39802cacd651a9c94290e86cf1e48d1
Reviewed-on: https://go-review.googlesource.com/c/144517
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/net/http/server.go

index 82abdd388e33d7a9ba1db7eb42be3fd3507ae583..6e1ccff4cd4139613441e649f822ef03af53e63c 100644 (file)
@@ -1782,11 +1782,9 @@ func (c *conn) serve(ctx context.Context) {
                        c.rwc.SetWriteDeadline(time.Now().Add(d))
                }
                if err := tlsConn.Handshake(); err != nil {
-                       // If the handshake failed, one reason might be a
-                       // misconfigured client sending an HTTP request. If so, reach
-                       // into the *tls.Conn unexported fields in a gross way so we
-                       // can reply on the plaintext connection. At least there's a
-                       // test that'll break if we rearrange the *tls.Conn struct.
+                       // If the handshake failed due to the client not speaking
+                       // TLS, assume they're speaking plaintext HTTP and write a
+                       // 400 response on the TLS conn's underlying net.Conn.
                        if re, ok := err.(tls.RecordHeaderError); ok && re.Conn != nil && tlsRecordHeaderLooksLikeHTTP(re.RecordHeader) {
                                io.WriteString(re.Conn, "HTTP/1.0 400 Bad Request\r\n\r\nClient sent an HTTP request to an HTTPS server.\n")
                                re.Conn.Close()