tsweb: add Unwrap to loggingResponseWriter for ResponseController (#18195)
The new http.ResponseController type added in Go 1.20: https://go.dev/doc/go1.20#http_responsecontroller requires ResponseWriters that are wrapping the original passed to ServeHTTP to implement an Unwrap method: https://pkg.go.dev/net/http#NewResponseController With this in place, it is possible to call methods such as Flush and SetReadDeadline on a loggingResponseWriter without needing to implement them there ourselves. Updates tailscale/corp#34763 Updates tailscale/corp#34813 Signed-off-by: James Sanderson <jsanderson@tailscale.com>
This commit is contained in:
committed by
GitHub
parent
65182f2119
commit
3ef9787379
@@ -687,6 +687,10 @@ func (lg loggingResponseWriter) Flush() {
|
|||||||
f.Flush()
|
f.Flush()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (lg *loggingResponseWriter) Unwrap() http.ResponseWriter {
|
||||||
|
return lg.ResponseWriter
|
||||||
|
}
|
||||||
|
|
||||||
// errorHandler is an http.Handler that wraps a ReturnHandler to render the
|
// errorHandler is an http.Handler that wraps a ReturnHandler to render the
|
||||||
// returned errors to the client and pass them back to any logHandlers.
|
// returned errors to the client and pass them back to any logHandlers.
|
||||||
type errorHandler struct {
|
type errorHandler struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user