]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: add response body to 413 and 400 errors
authorKenny Grant <kennygrant@gmail.com>
Sun, 27 Sep 2015 13:53:18 +0000 (14:53 +0100)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 5 Oct 2015 17:31:36 +0000 (17:31 +0000)
The existing serve() method returns a zero-length response body when
it encounters an error, which results in a blank page and no visible
error in browsers.

This change sends a response body explaining the error for display in browsers.

Fixes #12745

Change-Id: I9dc3b95ad88cb92c18ced51f6b52bd3b2c1b974c
Reviewed-on: https://go-review.googlesource.com/15018
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/net/http/server.go

index f525815ac64d2f5c7f81e013dc53cb60ff5c9370..0bdc9b685c7db51f3b1dcd522e04646d9cac0d23 100644 (file)
@@ -1339,7 +1339,7 @@ func (c *conn) serve() {
                                // responding to them and hanging up
                                // while they're still writing their
                                // request.  Undefined behavior.
-                               io.WriteString(c.rwc, "HTTP/1.1 413 Request Entity Too Large\r\n\r\n")
+                               io.WriteString(c.rwc, "HTTP/1.1 413 Request Entity Too Large\r\nContent-Type: text/plain\r\nConnection: close\r\n\r\n413 Request Entity Too Large")
                                c.closeWriteAndWait()
                                break
                        } else if err == io.EOF {
@@ -1347,7 +1347,7 @@ func (c *conn) serve() {
                        } else if neterr, ok := err.(net.Error); ok && neterr.Timeout() {
                                break // Don't reply
                        }
-                       io.WriteString(c.rwc, "HTTP/1.1 400 Bad Request\r\n\r\n")
+                       io.WriteString(c.rwc, "HTTP/1.1 400 Bad Request\r\nContent-Type: text/plain\r\nConnection: close\r\n\r\n400 Bad Request")
                        break
                }