package kite import "net/http" type responseWriter struct { http.ResponseWriter statusCode int written bool } func newResponseWriter(w http.ResponseWriter) *responseWriter { return &responseWriter{ ResponseWriter: w, statusCode: http.StatusOK, } } func (rw *responseWriter) WriteHeader(statusCode int) { if rw.written { return } rw.statusCode = statusCode rw.written = true rw.ResponseWriter.WriteHeader(statusCode) } func (rw *responseWriter) Write(b []byte) (int, error) { if !rw.written { rw.WriteHeader(http.StatusOK) } return rw.ResponseWriter.Write(b) }