Unverified Commit 41dc2804 authored by Blake Mizerany's avatar Blake Mizerany Committed by GitHub
Browse files

server/internal/registry: implement CloseNotify and Flush (for now) (#9402)

This fixes panics introduced in 2412adf4
when Gin ungracefully assumes that the http.ResponseWriter implements
http.CloseNotifier and http.Flusher, which our new statusCodeRecorder
does not. This is a temporary fix until we can pour the rest of the Gin
out.
parent 53d2990d
...@@ -72,6 +72,26 @@ func (r *statusCodeRecorder) WriteHeader(status int) { ...@@ -72,6 +72,26 @@ func (r *statusCodeRecorder) WriteHeader(status int) {
r.ResponseWriter.WriteHeader(status) r.ResponseWriter.WriteHeader(status)
} }
var (
_ http.ResponseWriter = (*statusCodeRecorder)(nil)
_ http.CloseNotifier = (*statusCodeRecorder)(nil)
_ http.Flusher = (*statusCodeRecorder)(nil)
)
// CloseNotify implements the http.CloseNotifier interface, for Gin. Remove with Gin.
//
// It panics if the underlying ResponseWriter is not a CloseNotifier.
func (r *statusCodeRecorder) CloseNotify() <-chan bool {
return r.ResponseWriter.(http.CloseNotifier).CloseNotify()
}
// Flush implements the http.Flusher interface, for Gin. Remove with Gin.
//
// It panics if the underlying ResponseWriter is not a Flusher.
func (r *statusCodeRecorder) Flush() {
r.ResponseWriter.(http.Flusher).Flush()
}
func (r *statusCodeRecorder) status() int { func (r *statusCodeRecorder) status() int {
return cmp.Or(r._status, 200) return cmp.Or(r._status, 200)
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment