mirror of
https://github.com/ollama/ollama.git
synced 2025-11-11 18:46:55 +01:00
server/internal/registry: implement CloseNotify and Flush (for now) (#9402)
This fixes panics introduced in 2412adf42b
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.
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user