chiark / gitweb /
packetframe: Handle end of chunk differently
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 17 Apr 2021 19:30:49 +0000 (20:30 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 23 Apr 2021 18:32:07 +0000 (19:32 +0100)
GoodEof is much nicer.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/packetframe.rs

index 2093da2123b7ca353924424f4a6547e263053b80..5a0d2e2855e63fc82648355c8201951e1e6015f8 100644 (file)
@@ -204,12 +204,12 @@ impl<R:Read> FrameReader<R> {
           }
         } {
           // value in chunk header
-          0         => Left(Ok(0)),
-          CHUNK_ERR => Left(Err(SenderError)),
+          0         => Left(RE::GoodEof),
+          CHUNK_ERR => Left(RE::SE(SenderError)),
           x         => Right(x as usize),
         } {
           // Left( end of frame )  Right( nonempty chunk len )
-          Left(r) => { self.state = Idle; return r?; }
+          Left(e) => { self.state = Idle; throw!(e); }
           Right(x) => x,
         });
         match self.state { InFrame(ref mut x) => x, _ => panic!() }