(conn net.Conn, brw *bufio.ReadWriter)
| 237 | var _ http.ResponseWriter = new(pipeResponseWriter) |
| 238 | |
| 239 | func newPipeResponseWriter(conn net.Conn, brw *bufio.ReadWriter) *pipeResponseWriter { |
| 240 | pr, pw := io.Pipe() |
| 241 | return &pipeResponseWriter{ |
| 242 | conn: conn, |
| 243 | brw: brw, |
| 244 | pw: pw, |
| 245 | errs: make(chan error, 1), |
| 246 | done: make(chan struct{}), |
| 247 | resp: &http.Response{ |
| 248 | ProtoMajor: 1, |
| 249 | ProtoMinor: 0, |
| 250 | Header: make(http.Header), |
| 251 | Body: pr, |
| 252 | }, |
| 253 | } |
| 254 | } |
| 255 | |
| 256 | func (w *pipeResponseWriter) finish() { |
| 257 | if w.wasHijacked { |