From: Russ Cox Date: Fri, 15 Jul 2011 16:07:37 +0000 (-0400) Subject: http: fixes for sniffing X-Git-Tag: weekly.2011-07-19~46 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e07c6e6ee78c20b78981591ebc2d0b6cb4094b21;p=gostls13.git http: fixes for sniffing R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/4753044 --- diff --git a/src/pkg/http/server.go b/src/pkg/http/server.go index d71a24959a..ca9ab64742 100644 --- a/src/pkg/http/server.go +++ b/src/pkg/http/server.go @@ -131,7 +131,7 @@ func (r *response) ReadFrom(src io.Reader) (n int64, err os.Error) { // WriteHeader if it hasn't been called yet, and WriteHeader // is what sets r.chunking. r.Flush() - if !r.chunking && r.bodyAllowed() { + if !r.chunking && r.bodyAllowed() && !r.needSniff { if rf, ok := r.conn.rwc.(io.ReaderFrom); ok { n, err = rf.ReadFrom(src) r.written += n @@ -367,8 +367,8 @@ func (w *response) sniff() { if w.chunking && len(data) > 0 { fmt.Fprintf(w.conn.buf, "%x\r\n", len(data)) - w.conn.buf.Write(data) } + w.conn.buf.Write(data) } // bodyAllowed returns true if a Write is allowed for this response type.