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>
pull/15957/merge
James 'zofrex' Sanderson 1 week ago committed by GitHub
parent 65182f2119
commit 3ef9787379
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -687,6 +687,10 @@ func (lg loggingResponseWriter) Flush() {
f.Flush()
}
func (lg *loggingResponseWriter) Unwrap() http.ResponseWriter {
return lg.ResponseWriter
}
// errorHandler is an http.Handler that wraps a ReturnHandler to render the
// returned errors to the client and pass them back to any logHandlers.
type errorHandler struct {

Loading…
Cancel
Save