mirror of
https://github.com/golang/go
synced 2024-11-25 06:07:58 -07:00
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
This commit is contained in:
parent
1eef6b0dd4
commit
aebae2577a
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user