| 207 | } |
| 208 | |
| 209 | func (f *httpFancyWriter) ReadFrom(r io.Reader) (int64, error) { |
| 210 | if f.basicWriter.tee != nil { |
| 211 | // Route through basicWriter.Write so that data is also written to the |
| 212 | // tee writer. basicWriter.Write already increments basicWriter.bytes, |
| 213 | // so we must NOT add n again here (that would double-count). |
| 214 | n, err := io.Copy(&f.basicWriter, r) |
| 215 | return n, err |
| 216 | } |
| 217 | rf := f.basicWriter.ResponseWriter.(io.ReaderFrom) |
| 218 | f.basicWriter.maybeWriteHeader() |
| 219 | n, err := rf.ReadFrom(r) |
| 220 | f.basicWriter.bytes += int(n) |
| 221 | return n, err |
| 222 | } |
| 223 | |
| 224 | var _ http.Flusher = &httpFancyWriter{} |
| 225 | var _ http.Hijacker = &httpFancyWriter{} |