]> Cypherpunks repositories - gostls13.git/commitdiff
http: add docs/warning on incorrect use of NewChunkedWriter
authorBrad Fitzpatrick <bradfitz@golang.org>
Mon, 23 May 2011 01:46:48 +0000 (18:46 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 23 May 2011 01:46:48 +0000 (18:46 -0700)
R=golang-dev, adg, r
CC=golang-dev
https://golang.org/cl/4536075

src/pkg/http/chunked.go

index bfd68a44085c1ad50e814145f38f243b9a6fd113..59121c5a23e39d0017d648af2fc6f8b9074b6948 100644 (file)
@@ -6,14 +6,24 @@ package http
 
 import (
        "io"
+       "log"
        "os"
        "strconv"
 )
 
 // NewChunkedWriter returns a new writer that translates writes into HTTP
-// "chunked" format before writing them to w.  Closing the returned writer
+// "chunked" format before writing them to w. Closing the returned writer
 // sends the final 0-length chunk that marks the end of the stream.
+//
+// NewChunkedWriter is not needed by normal applications. The http
+// package adds chunking automatically if handlers don't set a
+// Content-Length header. Using NewChunkedWriter inside a handler
+// would result in double chunking or chunking with a Content-Length
+// length, both of which are wrong.
 func NewChunkedWriter(w io.Writer) io.WriteCloser {
+       if _, bad := w.(*response); bad {
+               log.Printf("warning: using NewChunkedWriter in an http.Handler; expect corrupt output")
+       }
        return &chunkedWriter{w}
 }