From e30440c9ccbd9bfb2bd62b0c2d667e37293d8a1d Mon Sep 17 00:00:00 2001 From: Bastien Orivel Date: Thu, 8 Nov 2018 02:36:59 +0100 Subject: [PATCH] Don't reset the buffers for each chunk we download Sometimes hyper sends data that can't completely decompressed, resetting the buffer means we're losing some data and thus breaking the body --- components/net/connector.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/net/connector.rs b/components/net/connector.rs index 38693e70e24..05e4ded2bd9 100644 --- a/components/net/connector.rs +++ b/components/net/connector.rs @@ -81,7 +81,7 @@ impl Stream for WrappedBody { Decoder::Plain => Some(chunk), Decoder::Gzip(Some(ref mut decoder)) => { let mut buf = vec![0; BUF_SIZE]; - *decoder.get_mut() = Cursor::new(chunk.into_bytes()); + decoder.get_mut().get_mut().extend(&chunk.into_bytes()); let len = decoder.read(&mut buf).ok()?; buf.truncate(len); Some(buf.into()) @@ -96,7 +96,7 @@ impl Stream for WrappedBody { }, Decoder::Deflate(ref mut decoder) => { let mut buf = vec![0; BUF_SIZE]; - *decoder.get_mut() = Cursor::new(chunk.into_bytes()); + decoder.get_mut().get_mut().extend(&chunk.into_bytes()); let len = decoder.read(&mut buf).ok()?; buf.truncate(len); Some(buf.into())