@@ -1,4 +1,4 @@
1−use crate::Result;
1+use crate::{Error, Result};
22use anyhow::Context;
33use jsonrpc_core as jsonrpc;
44use log::{debug, error, info, warn};
@@ -76,14 +76,17 @@ impl Transport {
7676 let mut content_length = None;
7777 loop {
7878 buffer.truncate(0);
79− reader.read_line(buffer).await?;
80− let header = buffer.trim();
79+ if reader.read_line(buffer).await? == 0 {
80+ return Err(Error::StreamClosed);
81+ };
82+
83+ // debug!("<- header {:?}", buffer);
8184
8285 if header.is_empty() {
8386 break;
8487 }
8588
86− debug!("<- header {}", header);
89+ let header = buffer.trim();
8790
8891 let parts = header.split_once(": ");
8992
@@ -121,8 +124,10 @@ impl Transport {
121124 buffer: &mut String,
122125 ) -> Result<()> {
123126 buffer.truncate(0);
124− err.read_line(buffer).await?;
125− error!("err <- {}", buffer);
127+ if err.read_line(buffer).await? == 0 {
128+ return Err(Error::StreamClosed);
129+ };
130+ error!("err <- {:?}", buffer);
126131
127132 Ok(())
128133 }