fix(http): skip zero length chunks when encoding
This commit is contained in:
		| @@ -269,6 +269,10 @@ where I: AsyncRead + AsyncWrite, | |||||||
|                     return Ok(AsyncSink::NotReady(chunk)); |                     return Ok(AsyncSink::NotReady(chunk)); | ||||||
|                 } |                 } | ||||||
|                 if let Some(chunk) = chunk { |                 if let Some(chunk) = chunk { | ||||||
|  |                     if chunk.as_ref().is_empty() { | ||||||
|  |                         return Ok(AsyncSink::Ready); | ||||||
|  |                     } | ||||||
|  |  | ||||||
|                     let mut cursor = Cursor::new(chunk); |                     let mut cursor = Cursor::new(chunk); | ||||||
|                     match encoder.encode(&mut self.io, cursor.buf()) { |                     match encoder.encode(&mut self.io, cursor.buf()) { | ||||||
|                         Ok(n) => { |                         Ok(n) => { | ||||||
|   | |||||||
| @@ -63,7 +63,7 @@ impl Encoder { | |||||||
|                 }; |                 }; | ||||||
|  |  | ||||||
|                 if n == 0 { |                 if n == 0 { | ||||||
|                     return Err(io::Error::new(io::ErrorKind::WouldBlock, "would block")); |                     return Err(io::Error::new(io::ErrorKind::WriteZero, "write zero")); | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 *remaining -= n as u64; |                 *remaining -= n as u64; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user