Commit aebae257 authored by David Titarenco's avatar David Titarenco Committed by Russ Cox

Created new Conn.Flush() public method so the fd pipeline can be drained arbitrarily by the user.

Commented both flush methods so people know what they are looking at.

This is a necessary fix for streaming and long polling HTTP services.
Fixes #93.

R=r, rsc, david.titarenco
https://golang.org/cl/154099
parent 1eef6b0d
......@@ -238,7 +238,7 @@ func errorKludge(c *Conn, req *Request) {
}
}
func (c *Conn) flush() {
func (c *Conn) finishRequest() {
if !c.wroteHeader {
c.WriteHeader(StatusOK)
}
......@@ -251,6 +251,14 @@ func (c *Conn) flush() {
c.buf.Flush();
}
// Flush sends any buffered data to the client.
func (c *Conn) Flush() {
if !c.wroteHeader {
c.WriteHeader(StatusOK)
}
c.buf.Flush();
}
// Close the connection.
func (c *Conn) close() {
if c.buf != nil {
......@@ -277,7 +285,7 @@ func (c *Conn) serve() {
if c.hijacked {
return
}
c.flush();
c.finishRequest();
if c.closeAfterReply {
break
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment