fix detecting EOF

This commit is contained in:
Wez Furlong
2023-02-20 10:27:20 -07:00
parent d8021a0ebf
commit ca0456a6f7
2 changed files with 7 additions and 0 deletions
+3
View File
@@ -310,6 +310,9 @@ impl SmtpServer {
// Didn't find a complete line, fill up the rest of the buffer
let mut data = [0u8; 1024];
let size = self.socket.as_mut().unwrap().read(&mut data).await?;
if size == 0 {
anyhow::bail!("client disconnected");
}
self.read_buffer.extend_from_slice(&data[0..size]);
}
}
+4
View File
@@ -82,6 +82,10 @@ impl SmtpClient {
// Didn't find a complete line, fill up the rest of the buffer
let mut data = [0u8; MAX_LINE_LEN];
let size = self.socket.as_mut().unwrap().read(&mut data).await?;
if size == 0 {
self.socket.take();
return Err(ClientError::NotConnected);
}
self.read_buffer.extend_from_slice(&data[0..size]);
}
}