From 6e4d295a92acdf4ea195160a121fee4960b998e9 Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@ucc.asn.au>
Date: Mon, 21 Nov 2022 23:14:54 +0800
Subject: [PATCH] Handle EOF from tcp stream input

---
 embassy/src/embassy_sunset.rs | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/embassy/src/embassy_sunset.rs b/embassy/src/embassy_sunset.rs
index 80b22b8..8191dbd 100644
--- a/embassy/src/embassy_sunset.rs
+++ b/embassy/src/embassy_sunset.rs
@@ -85,13 +85,16 @@ impl<'a> EmbassySunset<'a> {
                 // TODO: make sunset read directly from socket, no intermediate buffer.
                 let mut buf = [0; 1024];
                 let l = rsock.read(&mut buf).await.expect("TODO handle read error");
+                if l == 0 {
+                    trace!("net EOF");
+                    break
+                }
                 let mut buf = &buf[..l];
                 while buf.len() > 0 {
                     let n = self.write(&buf).await?;
                     buf = &buf[n..];
                 }
             }
-            #[allow(unreachable_code)]
             Ok::<_, sunset::Error>(())
         };
 
-- 
GitLab