diff --git a/proxy/proxy.go b/proxy/proxy.go index f9cc81b..bef25a1 100644 --- a/proxy/proxy.go +++ b/proxy/proxy.go @@ -69,7 +69,7 @@ func (p *Proxy) handle(w http.ResponseWriter, r *http.Request) error { rw := newResponseWriter(w) rr := newResponseReader(resp) err = p.proxyResponse(rw, rr) - read := rr.Count() + read := rr.counter.Count() written := rw.rw.Count() log.Printf("transcoded: %d -> %d (%3.1f%%)", read, written, float64(written)/float64(read)*100) atomic.AddUint64(&p.ReadCount, read) diff --git a/proxy/response.go b/proxy/response.go index a7dc149..6ab67dc 100644 --- a/proxy/response.go +++ b/proxy/response.go @@ -9,14 +9,17 @@ import ( ) type ResponseReader struct { - datacounter.ReaderCounter - r *http.Response + io.Reader + counter *datacounter.ReaderCounter + r *http.Response } func newResponseReader(r *http.Response) *ResponseReader { + counter := datacounter.NewReaderCounter(r.Body) return &ResponseReader{ - ReaderCounter: *datacounter.NewReaderCounter(r.Body), - r: r, + Reader: counter, + counter: counter, + r: r, } }