Merge branch '14287-controller-structure'
[arvados.git] / sdk / go / httpserver / responsewriter.go
index f17bc820a98f5c242ffc24122d1176cc5c21a57e..8dea759ccb9b1772b816ad565a279975ab751c8a 100644 (file)
@@ -28,12 +28,22 @@ func WrapResponseWriter(orig http.ResponseWriter) ResponseWriter {
        return &responseWriter{ResponseWriter: orig}
 }
 
+func (w *responseWriter) CloseNotify() <-chan bool {
+       if cn, ok := w.ResponseWriter.(http.CloseNotifier); ok {
+               return cn.CloseNotify()
+       }
+       return nil
+}
+
 func (w *responseWriter) WriteHeader(s int) {
        w.wroteStatus = s
        w.ResponseWriter.WriteHeader(s)
 }
 
 func (w *responseWriter) Write(data []byte) (n int, err error) {
+       if w.wroteStatus == 0 {
+               w.WriteHeader(http.StatusOK)
+       }
        n, err = w.ResponseWriter.Write(data)
        w.wroteBodyBytes += n
        w.err = err