mirror of
https://github.com/golang/go
synced 2024-11-25 08:27:57 -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 {
|
if !c.wroteHeader {
|
||||||
c.WriteHeader(StatusOK)
|
c.WriteHeader(StatusOK)
|
||||||
}
|
}
|
||||||
@ -251,6 +251,14 @@ func (c *Conn) flush() {
|
|||||||
c.buf.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.
|
// Close the connection.
|
||||||
func (c *Conn) close() {
|
func (c *Conn) close() {
|
||||||
if c.buf != nil {
|
if c.buf != nil {
|
||||||
@ -277,7 +285,7 @@ func (c *Conn) serve() {
|
|||||||
if c.hijacked {
|
if c.hijacked {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
c.flush();
|
c.finishRequest();
|
||||||
if c.closeAfterReply {
|
if c.closeAfterReply {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user