diff --git a/src/main.rs b/src/main.rs index 29d5a2f..b2bcba8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -33,10 +33,11 @@ impl Stream for Forward { type Item = smol::io::Result>; fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { - let this = self.project(); + let mut this = self.project(); let mut buf = [0; 65536]; - let read = ready!(this.stream.poll_read(cx, &mut buf))?; + let read = ready!(this.stream.as_mut().poll_read(cx, &mut buf))?; if read == 0 { + ready!(this.stream.poll_close(cx))?; Poll::Ready(None) } else { Poll::Ready(Some(Ok(buf[..read].into())))