Make /events API send headers immediately

Go's net/http API does not send headers until the first call to
ResponseWriter.Write().  Ordinarily, this is fine, because in most
cases, responses are returned immediately.  However, for the events
API, nothing is written until some event is sent, which causes
timeouts and/or hangs in some HTTP client APIs, which wait for headers
before returning from the "make request" call.
Upstream-commit: dd9f4524d1a829a394f5d96da0c1e6338c476019
Component: engine
This commit is contained in:
Dan Hirsch
2013-10-28 21:39:21 -04:00
parent 7cf7b53ad1
commit 77b94a8b61
+1
View File
@@ -236,6 +236,7 @@ func getEvents(srv *Server, version float64, w http.ResponseWriter, r *http.Requ
}
w.Header().Set("Content-Type", "application/json")
wf := utils.NewWriteFlusher(w)
wf.Write([]byte{})
if since != 0 {
// If since, send previous events that happened after the timestamp
for _, event := range srv.events {