Don't panic when a http.ResponseWriter does not implement CloseNotifier
Instead, provide a variant of instrumentedResponseWriter that does not implement CloseNotifier, and use that when necessary. In copyFullPayload, log instead of panicing when we encounter something that doesn't implement CloseNotifier. This is more complicated than I'd like, but it's necessary because instrumentedResponseWriter must not embed CloseNotifier unless there's really a CloseNotifier to embed. Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
This commit is contained in:
parent
a0c63372fa
commit
10f602b158
3 changed files with 22 additions and 17 deletions
|
@ -110,13 +110,6 @@ func (trw *testResponseWriter) Header() http.Header {
|
|||
return trw.header
|
||||
}
|
||||
|
||||
// CloseNotify is only here to make the testResponseWriter implement the
|
||||
// http.CloseNotifier interface, which WithResponseWriter expects to be
|
||||
// implemented.
|
||||
func (trw *testResponseWriter) CloseNotify() <-chan bool {
|
||||
return make(chan bool)
|
||||
}
|
||||
|
||||
func (trw *testResponseWriter) Write(p []byte) (n int, err error) {
|
||||
if trw.status == 0 {
|
||||
trw.status = http.StatusOK
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue